From d03c6a3770a2802539d40e548b3ff3830fc59ead Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 17 Jul 2025 16:45:28 -0700 Subject: [PATCH 01/60] ci: instrument being able to run leaksanitizer --- scripts/runner.node.mjs | 29 +- test/no-validate-leaksan.txt | 3291 ++++++++++++++++++++++++++++++++++ 2 files changed, 3319 insertions(+), 1 deletion(-) create mode 100644 test/no-validate-leaksan.txt diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 5d565bc8613..471598edee3 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -247,6 +247,16 @@ const skipArray = (() => { .filter(line => !line.startsWith("#") && line.length > 0); })(); +const skipArrayLeaks = (() => { + const path = join(cwd, "test/no-validate-leaksan.txt"); + if (!existsSync(path)) { + return []; + } + return readFileSync(path, "utf-8") + .split("\n") + .filter(line => !line.startsWith("#") && line.length > 0); +})(); + /** * Returns whether we should validate exception checks running the given test * @param {string} test @@ -256,6 +266,15 @@ const shouldValidateExceptions = test => { return !(skipArray.includes(test) || skipArray.includes("test/" + test)); }; +/** + * Returns whether we should validate exception checks running the given test + * @param {string} test + * @returns {boolean} + */ +const shouldValidateLeakSan = test => { + return !(skipArrayLeaks.includes(test) || skipArrayLeaks.includes("test/" + test)); +}; + /** * @param {string} testPath * @returns {string[]} @@ -450,6 +469,10 @@ async function runTests() { if ((basename(execPath).includes("asan") || !isCI) && shouldValidateExceptions(testPath)) { env.BUN_JSC_validateExceptionChecks = "1"; } + if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { + env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; + env["ASAN_OPTIONS=detect_leaks"] = "1"; + } await runTest(title, async () => { const { ok, error, stdout } = await spawnBun(execPath, { cwd: cwd, @@ -1059,9 +1082,13 @@ async function spawnBunTest(execPath, testPath, options = { cwd }) { const env = { GITHUB_ACTIONS: "true", // always true so annotations are parsed }; - if (basename(execPath).includes("asan") && shouldValidateExceptions(relative(cwd, absPath))) { + if ((basename(execPath).includes("asan") || !isCI) && shouldValidateExceptions(relative(cwd, absPath))) { env.BUN_JSC_validateExceptionChecks = "1"; } + if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { + env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; + env["ASAN_OPTIONS=detect_leaks"] = "1"; + } const { ok, error, stdout } = await spawnBun(execPath, { args: isReallyTest ? testArgs : [...args, absPath], diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt new file mode 100644 index 00000000000..ced3de669a2 --- /dev/null +++ b/test/no-validate-leaksan.txt @@ -0,0 +1,3291 @@ +# List of tests for which we do NOT enable LeakSanitizer when running in ASAN CI +test/bake/deinitialization.test.ts +test/bake/dev-and-prod.test.ts +test/bake/dev/bundle.test.ts +test/bake/dev/css.test.ts +test/bake/dev/ecosystem.test.ts +test/bake/dev/esm.test.ts +test/bake/dev/hot.test.ts +test/bake/dev/html.test.ts +test/bake/dev/plugins.test.ts +test/bake/dev/react-spa.test.ts +test/bake/dev/sourcemap.test.ts +test/bake/dev/ssg-pages-router.test.ts +test/bake/dev/stress.test.ts +test/bake/dev/vfile.test.ts +test/bake/framework-router.test.ts +test/bundler/bun-build-api.test.ts +test/bundler/bundler_banner.test.ts +test/bundler/bundler_browser.test.ts +test/bundler/bundler_bun.test.ts +test/bundler/bundler_cjs2esm.test.ts +test/bundler/bundler_comments.test.ts +test/bundler/bundler_compile.test.ts +test/bundler/bundler_decorator_metadata.test.ts +test/bundler/bundler_defer.test.ts +test/bundler/bundler_drop.test.ts +test/bundler/bundler_edgecase.test.ts +test/bundler/bundler_env.test.ts +test/bundler/bundler_footer.test.ts +test/bundler/bundler_html.test.ts +test/bundler/bundler_html_server.test.ts +test/bundler/bundler_jsx.test.ts +test/bundler/bundler_loader.test.ts +test/bundler/bundler_minify.test.ts +test/bundler/bundler_minify_symbol_for.test.ts +test/bundler/bundler_naming.test.ts +test/bundler/bundler_npm.test.ts +test/bundler/bundler_plugin.test.ts +test/bundler/bundler_regressions.test.ts +test/bundler/bundler_splitting.test.ts +test/bundler/bundler_string.test.ts +test/bundler/cli.test.ts +test/bundler/css/css-modules.test.ts +test/bundler/css/wpt/background-computed.test.ts +test/bundler/css/wpt/color-computed-rgb.test.ts +test/bundler/css/wpt/color-computed.test.ts +test/bundler/css/wpt/relative_color_out_of_gamut.test.ts +test/bundler/esbuild/css.test.ts +test/bundler/esbuild/dce.test.ts +test/bundler/esbuild/default.test.ts +test/bundler/esbuild/extra.test.ts +test/bundler/esbuild/importstar.test.ts +test/bundler/esbuild/importstar_ts.test.ts +test/bundler/esbuild/loader.test.ts +test/bundler/esbuild/lower.test.ts +test/bundler/esbuild/packagejson.test.ts +test/bundler/esbuild/splitting.test.ts +test/bundler/esbuild/ts.test.ts +test/bundler/esbuild/tsconfig.test.ts +test/bundler/html-import-manifest.test.ts +test/bundler/transpiler/bun-pragma.test.ts +test/bundler/transpiler/decorator-metadata.test.ts +test/bundler/transpiler/decorators.test.ts +test/bundler/transpiler/export-default.test.js +test/bundler/transpiler/function-tostring-require.test.ts +test/bundler/transpiler/jsx-production.test.ts +test/bundler/transpiler/macro-test.test.ts +test/bundler/transpiler/preserve-use-strict-cjs.test.ts +test/bundler/transpiler/property.test.ts +test/bundler/transpiler/runtime-transpiler.test.ts +test/bundler/transpiler/template-literal.test.ts +test/bundler/transpiler/transpiler-stack-overflow.test.ts +test/bundler/transpiler/transpiler.test.js +test/bundler/transpiler_constant_fold_eqeq.test.ts +test/cli/bun.test.ts +test/cli/console-depth.test.ts +test/cli/env/bun-options.test.ts +test/cli/hot/hot.test.ts +test/cli/hot/watch.test.ts +test/cli/init/init.test.ts +test/cli/inspect/BunFrontendDevServer.test.ts +test/cli/inspect/HTTPServerAgent.test.ts +test/cli/inspect/inspect.test.ts +test/cli/install/architecture-match.test.ts +test/cli/install/bad-workspace.test.ts +test/cli/install/bun-add.test.ts +test/cli/install/bun-audit.test.ts +test/cli/install/bun-create.test.ts +test/cli/install/bun-info.test.ts +test/cli/install/bun-install-dep.test.ts +test/cli/install/bun-install-lifecycle-scripts.test.ts +test/cli/install/bun-install-patch.test.ts +test/cli/install/bun-install-pathname-trailing-slash.test.ts +test/cli/install/bun-install-proxy.test.ts +test/cli/install/bun-install-registry.test.ts +test/cli/install/bun-install-retry.test.ts +test/cli/install/bun-install.test.ts +test/cli/install/bun-link.test.ts +test/cli/install/bun-lock.test.ts +test/cli/install/bun-lockb.test.ts +test/cli/install/bun-pack.test.ts +test/cli/install/bun-patch.test.ts +test/cli/install/bun-pm-pkg.test.ts +test/cli/install/bun-pm-version.test.ts +test/cli/install/bun-pm-why.test.ts +test/cli/install/bun-pm.test.ts +test/cli/install/bun-publish.test.ts +test/cli/install/bun-remove.test.ts +test/cli/install/bun-repl.test.ts +test/cli/install/bun-run-bunfig.test.ts +test/cli/install/bun-update.test.ts +test/cli/install/bun-upgrade.test.ts +test/cli/install/bun-workspaces.test.ts +test/cli/install/bunx.test.ts +test/cli/install/catalogs.test.ts +test/cli/install/isolated-install.test.ts +test/cli/install/migration/complex-workspace.test.ts +test/cli/install/migration/migrate.test.ts +test/cli/install/npmrc.test.ts +test/cli/install/overrides.test.ts +test/cli/install/redacted-config-logs.test.ts +test/cli/install/semver.test.ts +test/cli/install/test-dev-peer-dependency-priority.test.ts +test/cli/run/as-node.test.ts +test/cli/run/commonjs-invalid.test.ts +test/cli/run/commonjs-no-export.test.ts +test/cli/run/empty-file.test.ts +test/cli/run/env.test.ts +test/cli/run/esm-defineProperty.test.ts +test/cli/run/filter-workspace.test.ts +test/cli/run/garbage-env.test.ts +test/cli/run/if-present.test.ts +test/cli/run/jsx-namespaced-attributes.test.ts +test/cli/run/jsx-symbol-collision.test.ts +test/cli/run/log-test.test.ts +test/cli/run/preload-test.test.js +test/cli/run/require-and-import-trailing.test.ts +test/cli/run/require-cache.test.ts +test/cli/run/run-autoinstall.test.ts +test/cli/run/run-cjs.test.ts +test/cli/run/run-eval.test.ts +test/cli/run/run-extensionless.test.ts +test/cli/run/run-file-on-fuse.test.ts +test/cli/run/run-process-env.test.ts +test/cli/run/run-quote.test.ts +test/cli/run/run-shell.test.ts +test/cli/run/run-unicode.test.ts +test/cli/run/run_command.test.ts +test/cli/run/self-reference.test.ts +test/cli/run/shell-keepalive.test.ts +test/cli/run/sql-preconnect.test.ts +test/cli/run/syntax.test.ts +test/cli/run/transpiler-cache.test.ts +test/cli/run/tsconfig-override.test.ts +test/cli/test/bun-test.test.ts +test/cli/test/coverage.test.ts +test/cli/test/expectations.test.ts +test/cli/test/test-timeout-behavior.test.ts +test/cli/update_interactive_formatting.test.ts +test/cli/watch/watch.test.ts +test/config/bunfig/preload.test.ts +test/integration/bun-types/bun-types.test.ts +test/integration/bun-types/fixture/serve-types.test.ts +test/integration/esbuild/esbuild.test.ts +test/integration/expo-app/expo.test.ts +test/integration/jsdom/jsdom.test.ts +test/integration/mysql2/mysql2.test.ts +test/integration/nest/nest_metadata.test.ts +test/integration/next-pages/test/dev-server-ssr-100.test.ts +test/integration/next-pages/test/dev-server.test.ts +test/integration/next-pages/test/next-build.test.ts +test/integration/sass/sass.test.ts +test/integration/sharp/sharp.test.ts +test/integration/svelte/client-side.test.ts +test/integration/svelte/server-side.test.ts +test/integration/typegraphql/src/ts_example.test.ts +test/integration/typegraphql/src/typegraphql.test.ts +test/integration/typegraphql/src/unsolvable.test.ts +test/integration/vite-build/vite-build.test.ts +test/internal/ban-words.test.ts +test/internal/bindgen.test.ts +test/internal/fifo.test.ts +test/internal/highlighter.test.ts +test/internal/powershell-escape.test.ts +test/js/bun/bun-object/deep-equals.spec.ts +test/js/bun/bun-object/deep-match.spec.ts +test/js/bun/bun-object/write.spec.ts +test/js/bun/console/bun-inspect-table.test.ts +test/js/bun/console/console-iterator.test.ts +test/js/bun/console/console-table.test.ts +test/js/bun/cookie/cookie-exotic-inputs.test.ts +test/js/bun/cookie/cookie-expires-validation.test.ts +test/js/bun/cookie/cookie-map.test.ts +test/js/bun/cookie/cookie-security-fuzz.test.ts +test/js/bun/cookie/cookie.test.ts +test/js/bun/crypto/cipheriv-decipheriv.test.ts +test/js/bun/crypto/wpt-webcrypto.generateKey.test.ts +test/js/bun/css/color.test.ts +test/js/bun/css/css-fuzz.test.ts +test/js/bun/css/css.test.ts +test/js/bun/css/doesnt_crash.test.ts +test/js/bun/dns/dns-prefetch.test.ts +test/js/bun/dns/resolve-dns.test.ts +test/js/bun/empty-file.test.ts +test/js/bun/ffi/addr32.test.ts +test/js/bun/ffi/cc.test.ts +test/js/bun/ffi/ffi.test.js +test/js/bun/glob/leak.test.ts +test/js/bun/glob/match.test.ts +test/js/bun/glob/proto.test.ts +test/js/bun/glob/scan.test.ts +test/js/bun/glob/stress.test.ts +test/js/bun/globals.test.js +test/js/bun/http/async-iterator-stream.test.ts +test/js/bun/http/bun-connect-x509.test.ts +test/js/bun/http/bun-listen-connect-args.test.ts +test/js/bun/http/bun-serve-args.test.ts +test/js/bun/http/bun-serve-body-json-async.test.ts +test/js/bun/http/bun-serve-cookies.test.ts +test/js/bun/http/bun-serve-file.test.ts +test/js/bun/http/bun-serve-headers.test.ts +test/js/bun/http/bun-serve-html-entry.test.ts +test/js/bun/http/bun-serve-html-manifest.test.ts +test/js/bun/http/bun-serve-html.test.ts +test/js/bun/http/bun-serve-propagate-errors.test.ts +test/js/bun/http/bun-serve-routes.test.ts +test/js/bun/http/bun-serve-ssl.test.ts +test/js/bun/http/bun-serve-static.test.ts +test/js/bun/http/bun-server.test.ts +test/js/bun/http/decodeURIComponentSIMD.test.ts +test/js/bun/http/fetch-file-upload.test.ts +test/js/bun/http/form-data-set-append.test.js +test/js/bun/http/getIfPropertyExists.test.ts +test/js/bun/http/hspec.test.ts +test/js/bun/http/http-server-chunking.test.ts +test/js/bun/http/http-spec.ts +test/js/bun/http/leaks-test.test.ts +test/js/bun/http/proxy.test.js +test/js/bun/http/proxy.test.ts +test/js/bun/http/req-url-leak.test.ts +test/js/bun/http/serve-body-leak.test.ts +test/js/bun/http/serve-direct-readable-stream.test.ts +test/js/bun/http/serve-listen.test.ts +test/js/bun/http/serve.test.ts +test/js/bun/import-attributes/import-attributes.test.ts +test/js/bun/ini/ini.test.ts +test/js/bun/io/bun-write-leak.test.ts +test/js/bun/io/bun-write.test.js +test/js/bun/jsc/bun-jsc.test.ts +test/js/bun/jsc/domjit.test.ts +test/js/bun/jsc/shadow.test.js +test/js/bun/net/socket.test.ts +test/js/bun/net/tcp-server.test.ts +test/js/bun/patch/patch.test.ts +test/js/bun/perf/static-initializers.test.ts +test/js/bun/perf_hooks/histogram.test.ts +test/js/bun/plugin/plugins.test.ts +test/js/bun/resolve/build-error.test.ts +test/js/bun/resolve/bun-lock.test.ts +test/js/bun/resolve/esModule-annotation.test.js +test/js/bun/resolve/esModule.test.ts +test/js/bun/resolve/import-custom-condition.test.ts +test/js/bun/resolve/import-empty.test.js +test/js/bun/resolve/import-meta-resolve.test.mjs +test/js/bun/resolve/import-meta.test.js +test/js/bun/resolve/import-query.test.ts +test/js/bun/resolve/jsonc.test.ts +test/js/bun/resolve/load-file-loader-a-lot.test.ts +test/js/bun/resolve/load-same-js-file-a-lot.test.ts +test/js/bun/resolve/non-english-import.test.js +test/js/bun/resolve/png/test-png-import.test.js +test/js/bun/resolve/require.test.ts +test/js/bun/resolve/resolve-bad-parent.test.mjs +test/js/bun/resolve/resolve-error.test.ts +test/js/bun/resolve/resolve-ts.test.ts +test/js/bun/resolve/resolve.test.ts +test/js/bun/resolve/toml/crash/toml-crash.test.ts +test/js/bun/resolve/toml/toml.test.js +test/js/bun/runtime-error.test.ts +test/js/bun/s3/s3-insecure.test.ts +test/js/bun/s3/s3-list-objects.test.ts +test/js/bun/s3/s3-storage-class.test.ts +test/js/bun/s3/s3.leak.test.ts +test/js/bun/s3/s3.test.ts +test/js/bun/shell/brace.test.ts +test/js/bun/shell/bunshell-default.test.ts +test/js/bun/shell/bunshell-file.test.ts +test/js/bun/shell/bunshell-instance.test.ts +test/js/bun/shell/bunshell.test.ts +test/js/bun/shell/commands/basename.test.ts +test/js/bun/shell/commands/cp.test.ts +test/js/bun/shell/commands/dirname.test.ts +test/js/bun/shell/commands/echo.test.ts +test/js/bun/shell/commands/exit.test.ts +test/js/bun/shell/commands/false.test.ts +test/js/bun/shell/commands/ls.test.ts +test/js/bun/shell/commands/mv.test.ts +test/js/bun/shell/commands/rm.test.ts +test/js/bun/shell/commands/seq.test.ts +test/js/bun/shell/commands/true.test.ts +test/js/bun/shell/commands/which.test.ts +test/js/bun/shell/commands/yes.test.ts +test/js/bun/shell/env.positionals.test.ts +test/js/bun/shell/epipe.test.ts +test/js/bun/shell/exec.test.ts +test/js/bun/shell/file-io.test.ts +test/js/bun/shell/lazy.test.ts +test/js/bun/shell/leak.test.ts +test/js/bun/shell/lex.test.ts +test/js/bun/shell/parse.test.ts +test/js/bun/shell/shell-hang.test.ts +test/js/bun/shell/shell-load.test.ts +test/js/bun/shell/shelloutput.test.ts +test/js/bun/shell/throw.test.ts +test/js/bun/shell/yield.test.ts +test/js/bun/spawn/bun-ipc-inherit.test.ts +test/js/bun/spawn/exit-code.test.ts +test/js/bun/spawn/job-object-bug.test.ts +test/js/bun/spawn/readablestream-helpers.test.ts +test/js/bun/spawn/spawn-empty-arrayBufferOrBlob.test.ts +test/js/bun/spawn/spawn-env.test.ts +test/js/bun/spawn/spawn-kill-signal.test.ts +test/js/bun/spawn/spawn-noread-leak.test.ts +test/js/bun/spawn/spawn-path.test.ts +test/js/bun/spawn/spawn-pipe-leak.test.ts +test/js/bun/spawn/spawn-signal.test.ts +test/js/bun/spawn/spawn-stdin-destroy.test.ts +test/js/bun/spawn/spawn-stdin-readable-stream-edge-cases.test.ts +test/js/bun/spawn/spawn-stdin-readable-stream-integration.test.ts +test/js/bun/spawn/spawn-stdin-readable-stream-sync.test.ts +test/js/bun/spawn/spawn-stdin-readable-stream.test.ts +test/js/bun/spawn/spawn-stream-serve.test.ts +test/js/bun/spawn/spawn-streaming-stdin.test.ts +test/js/bun/spawn/spawn-streaming-stdout.test.ts +test/js/bun/spawn/spawn-stress.test.ts +test/js/bun/spawn/spawn.ipc.bun-node.test.ts +test/js/bun/spawn/spawn.ipc.node-bun.test.ts +test/js/bun/spawn/spawn.ipc.test.ts +test/js/bun/spawn/spawn.test.ts +test/js/bun/spawn/spawnSync.test.ts +test/js/bun/spawn/spawn_waiter_thread.test.ts +test/js/bun/sqlite/column-types.test.js +test/js/bun/sqlite/sql-timezone.test.js +test/js/bun/sqlite/sqlite.test.js +test/js/bun/stream/direct-readable-stream.test.tsx +test/js/bun/symbols.test.ts +test/js/bun/test/bun-test.test.ts +test/js/bun/test/describe.test.ts +test/js/bun/test/done-async.test.ts +test/js/bun/test/expect-assertions.test.ts +test/js/bun/test/expect-extend-preload.test.ts +test/js/bun/test/expect-extend.test.js +test/js/bun/test/expect-label.test.ts +test/js/bun/test/expect-unreaachable.test.ts +test/js/bun/test/expect.test.js +test/js/bun/test/jest-each.test.ts +test/js/bun/test/jest-extended.test.js +test/js/bun/test/jest-hooks.test.ts +test/js/bun/test/mock-fn.test.js +test/js/bun/test/mock/6874/A.test.ts +test/js/bun/test/mock/6874/B.test.ts +test/js/bun/test/mock/6879/6879.test.ts +test/js/bun/test/mock/mock-module.test.ts +test/js/bun/test/nested-describes.test.ts +test/js/bun/test/preload-test.test.js +test/js/bun/test/snapshot-tests/bun-snapshots.test.ts +test/js/bun/test/snapshot-tests/existing-snapshots.test.ts +test/js/bun/test/snapshot-tests/new-snapshot.test.ts +test/js/bun/test/snapshot-tests/snapshots/more-snapshots/different-directory.test.ts +test/js/bun/test/snapshot-tests/snapshots/more.test.ts +test/js/bun/test/snapshot-tests/snapshots/moremore.test.ts +test/js/bun/test/snapshot-tests/snapshots/snapshot.test.ts +test/js/bun/test/stack.test.ts +test/js/bun/test/test-auto-import-jest-globals.test.js +test/js/bun/test/test-error-code-done-callback.test.ts +test/js/bun/test/test-failing.test.ts +test/js/bun/test/test-only.test.ts +test/js/bun/test/test-test.test.ts +test/js/bun/test/test-timers.test.ts +test/js/bun/udp/dgram.test.ts +test/js/bun/udp/udp_socket.test.ts +test/js/bun/util/BunObject.test.ts +test/js/bun/util/arraybuffersink.test.ts +test/js/bun/util/bun-cryptohasher.test.ts +test/js/bun/util/bun-file-exists.test.js +test/js/bun/util/bun-file-read.test.ts +test/js/bun/util/bun-file-windows.test.ts +test/js/bun/util/bun-file.test.ts +test/js/bun/util/bun-isMainThread.test.js +test/js/bun/util/concat.test.js +test/js/bun/util/cookie.test.js +test/js/bun/util/csrf.test.ts +test/js/bun/util/error-gc-test.test.js +test/js/bun/util/escapeHTML.test.js +test/js/bun/util/exotic-global-mutable-prototype.test.ts +test/js/bun/util/file-type.test.ts +test/js/bun/util/fileUrl.test.js +test/js/bun/util/filesink.test.ts +test/js/bun/util/filesystem_router.test.ts +test/js/bun/util/fuzzy-wuzzy.test.ts +test/js/bun/util/hash.test.js +test/js/bun/util/heap-snapshot.test.ts +test/js/bun/util/highlighter.test.ts +test/js/bun/util/index-of-line.test.ts +test/js/bun/util/inspect-error-leak.test.js +test/js/bun/util/inspect-error.test.js +test/js/bun/util/inspect.test.js +test/js/bun/util/mmap.test.js +test/js/bun/util/password.test.ts +test/js/bun/util/peek.test.ts +test/js/bun/util/randomUUIDv5.test.ts +test/js/bun/util/randomUUIDv7.test.ts +test/js/bun/util/readablestreamtoarraybuffer.test.ts +test/js/bun/util/reportError.test.ts +test/js/bun/util/sleep.test.ts +test/js/bun/util/sleepSync.test.ts +test/js/bun/util/stringWidth.test.ts +test/js/bun/util/text-loader.test.ts +test/js/bun/util/unsafe.test.js +test/js/bun/util/v8-heap-snapshot.test.ts +test/js/bun/util/which.test.ts +test/js/bun/util/zstd.test.ts +test/js/bun/wasm/wasi.test.js +test/js/bun/websocket/websocket-server.test.ts +test/js/deno/abort/abort-controller.test.ts +test/js/deno/crypto/random.test.ts +test/js/deno/crypto/webcrypto.test.ts +test/js/deno/encoding/encoding.test.ts +test/js/deno/event/custom-event.test.ts +test/js/deno/event/event-target.test.ts +test/js/deno/event/event.test.ts +test/js/deno/fetch/blob.test.ts +test/js/deno/fetch/body.test.ts +test/js/deno/fetch/headers.test.ts +test/js/deno/fetch/request.test.ts +test/js/deno/fetch/response.test.ts +test/js/deno/performance/performance.test.ts +test/js/deno/url/url.test.ts +test/js/deno/url/urlsearchparams.test.ts +test/js/deno/v8/error.test.ts +test/js/first_party/undici/undici-primordials.test.ts +test/js/first_party/undici/undici.test.ts +test/js/first_party/utf-8-validate/utf-8-validate.test.ts +test/js/first_party/ws/ws.test.ts +test/js/junit-reporter/junit.test.js +test/js/node/assert/assert-doesNotMatch.test.cjs +test/js/node/assert/assert-match.test.cjs +test/js/node/assert/assert-promise.test.ts +test/js/node/assert/assert-typedarray-deepequal.test.ts +test/js/node/assert/assert.spec.ts +test/js/node/assert/assert.test.cjs +test/js/node/async_hooks/AsyncLocalStorage-tracking.test.ts +test/js/node/async_hooks/AsyncLocalStorage.test.ts +test/js/node/async_hooks/EventEmitterAsyncResource.test.ts +test/js/node/async_hooks/async-local-storage-thenable.test.ts +test/js/node/async_hooks/async_hooks.node.test.ts +test/js/node/buffer-concat.test.ts +test/js/node/buffer-resolveObjectURL.test.ts +test/js/node/buffer.test.js +test/js/node/child_process/child-process-exec.test.ts +test/js/node/child_process/child-process-stdio.test.js +test/js/node/child_process/child_process-node.test.js +test/js/node/child_process/child_process.test.ts +test/js/node/child_process/child_process_ipc.test.js +test/js/node/child_process/child_process_ipc_large_disconnect.test.js +test/js/node/child_process/child_process_send_cb.test.js +test/js/node/cluster.test.ts +test/js/node/cluster/test-docs-http-server.ts +test/js/node/cluster/test-worker-no-exit-http.ts +test/js/node/console/console.test.ts +test/js/node/crypto/crypto-hmac-algorithm.test.ts +test/js/node/crypto/crypto-lazyhash.test.ts +test/js/node/crypto/crypto-oneshot.test.ts +test/js/node/crypto/crypto-random.test.ts +test/js/node/crypto/crypto-rsa.test.js +test/js/node/crypto/crypto.hmac.test.ts +test/js/node/crypto/crypto.key-objects.test.ts +test/js/node/crypto/crypto.test.ts +test/js/node/crypto/ecdh.test.ts +test/js/node/crypto/node-crypto.test.js +test/js/node/crypto/pbkdf2.test.ts +test/js/node/dgram/node-dgram.test.js +test/js/node/diagnostics_channel/diagnostics_channel.test.ts +test/js/node/dirname.test.js +test/js/node/dns/dns-lookup-keepalive.test.ts +test/js/node/dns/node-dns.test.js +test/js/node/domexception-node.test.js +test/js/node/env-windows.test.ts +test/js/node/events/event-emitter.test.ts +test/js/node/fs/abort-signal-leak-read-write-file.test.ts +test/js/node/fs/cp.test.ts +test/js/node/fs/dir.test.ts +test/js/node/fs/fs-leak.test.js +test/js/node/fs/fs-mkdir.test.ts +test/js/node/fs/fs-oom.test.ts +test/js/node/fs/fs-promises-writeFile-async-iterator.test.ts +test/js/node/fs/fs-stats-truncate.test.ts +test/js/node/fs/fs.test.ts +test/js/node/fs/glob.test.ts +test/js/node/fs/promises.test.js +test/js/node/harness.test.js +test/js/node/http/client-timeout-error.test.ts +test/js/node/http/node-fetch-cjs.test.js +test/js/node/http/node-fetch-primordials.test.ts +test/js/node/http/node-fetch.test.js +test/js/node/http/node-http-backpressure-max.test.ts +test/js/node/http/node-http-backpressure.test.ts +test/js/node/http/node-http-maxHeaderSize.test.ts +test/js/node/http/node-http-parser.test.ts +test/js/node/http/node-http-primoridals.test.ts +test/js/node/http/node-http-transfer-encoding.test.ts +test/js/node/http/node-http-uaf.test.ts +test/js/node/http/node-http.compress.leak.test.ts +test/js/node/http/node-http.test.ts +test/js/node/http/numeric-header.test.ts +test/js/node/http2/node-http2.test.js +test/js/node/inspector/inspector.test.ts +test/js/node/missing-module.test.js +test/js/node/module/module-sourcemap.test.js +test/js/node/module/node-module-module.test.js +test/js/node/module/require-extensions.test.ts +test/js/node/module/sourcemap.test.js +test/js/node/net/double-connect.test.ts +test/js/node/net/node-net-allowHalfOpen.test.js +test/js/node/net/node-net-server.test.ts +test/js/node/net/node-net.test.ts +test/js/node/net/server.spec.ts +test/js/node/net/socketaddress.spec.ts +test/js/node/no-addons.test.ts +test/js/node/nodettywrap.test.ts +test/js/node/os/os.test.js +test/js/node/path/15704.test.js +test/js/node/path/basename.test.js +test/js/node/path/browserify.test.js +test/js/node/path/dirname.test.js +test/js/node/path/extname.test.js +test/js/node/path/is-absolute.test.js +test/js/node/path/join.test.js +test/js/node/path/matches-glob.test.ts +test/js/node/path/normalize.test.js +test/js/node/path/parse-format.test.js +test/js/node/path/path.test.js +test/js/node/path/posix-exists.test.js +test/js/node/path/posix-relative-on-windows.test.js +test/js/node/path/relative.test.js +test/js/node/path/resolve.test.js +test/js/node/path/to-namespaced-path.test.js +test/js/node/path/win32-exists.test.js +test/js/node/path/zero-length-strings.test.js +test/js/node/perf_hooks/perf_hooks.test.ts +test/js/node/process-binding.test.ts +test/js/node/process/call-constructor.test.js +test/js/node/process/process-args.test.js +test/js/node/process/process-nexttick.test.js +test/js/node/process/process-on.test.ts +test/js/node/process/process-stdin.test.ts +test/js/node/process/process-stdio.test.ts +test/js/node/process/process.test.js +test/js/node/promise/reject-tostring.test.ts +test/js/node/readline/getStringWidth.test.ts +test/js/node/readline/pause_stdin_should_exit.test.ts +test/js/node/readline/readline.node.test.ts +test/js/node/readline/readline_never_unrefs.test.ts +test/js/node/readline/readline_promises.node.test.ts +test/js/node/readline/stdin_fell_asleep.test.ts +test/js/node/stream/node-stream-uint8array.test.ts +test/js/node/stream/node-stream.test.js +test/js/node/string-module.test.js +test/js/node/string_decoder/string-decoder.test.js +test/js/node/stubs.test.js +test/js/node/test/parallel/test-abortsignal-any.mjs +test/js/node/test/parallel/test-arm-math-illegal-instruction.js +test/js/node/test/parallel/test-assert-async.js +test/js/node/test/parallel/test-assert-builtins-not-read-from-filesystem.js +test/js/node/test/parallel/test-assert-calltracker-calls.js +test/js/node/test/parallel/test-assert-calltracker-getCalls.js +test/js/node/test/parallel/test-assert-calltracker-report.js +test/js/node/test/parallel/test-assert-calltracker-verify.js +test/js/node/test/parallel/test-assert-checktag.js +test/js/node/test/parallel/test-assert-deep-with-error.js +test/js/node/test/parallel/test-assert-esm-cjs-message-verify.js +test/js/node/test/parallel/test-assert-fail-deprecation.js +test/js/node/test/parallel/test-assert-fail.js +test/js/node/test/parallel/test-assert-if-error.js +test/js/node/test/parallel/test-assert-strict-exists.js +test/js/node/test/parallel/test-assert-typedarray-deepequal.js +test/js/node/test/parallel/test-assert.js +test/js/node/test/parallel/test-async-hooks-asyncresource-constructor.js +test/js/node/test/parallel/test-async-hooks-constructor.js +test/js/node/test/parallel/test-async-hooks-recursive-stack-runInAsyncScope.js +test/js/node/test/parallel/test-async-hooks-run-in-async-scope-caught-exception.js +test/js/node/test/parallel/test-async-hooks-run-in-async-scope-this-arg.js +test/js/node/test/parallel/test-async-hooks-vm-gc.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-1.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-2.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-3.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-4.js +test/js/node/test/parallel/test-async-local-storage-bind.js +test/js/node/test/parallel/test-async-local-storage-contexts.js +test/js/node/test/parallel/test-async-local-storage-deep-stack.js +test/js/node/test/parallel/test-async-local-storage-enter-with.js +test/js/node/test/parallel/test-async-local-storage-exit-does-not-leak.js +test/js/node/test/parallel/test-async-local-storage-http-multiclients.js +test/js/node/test/parallel/test-async-local-storage-snapshot.js +test/js/node/test/parallel/test-async-wrap-constructor.js +test/js/node/test/parallel/test-atomics-wake.js +test/js/node/test/parallel/test-bad-unicode.js +test/js/node/test/parallel/test-beforeexit-event-exit.js +test/js/node/test/parallel/test-binding-constants.js +test/js/node/test/parallel/test-blob-createobjecturl.js +test/js/node/test/parallel/test-blocklist-clone.js +test/js/node/test/parallel/test-blocklist.js +test/js/node/test/parallel/test-broadcastchannel-custom-inspect.js +test/js/node/test/parallel/test-btoa-atob.js +test/js/node/test/parallel/test-buffer-alloc.js +test/js/node/test/parallel/test-buffer-arraybuffer.js +test/js/node/test/parallel/test-buffer-ascii.js +test/js/node/test/parallel/test-buffer-backing-arraybuffer.js +test/js/node/test/parallel/test-buffer-badhex.js +test/js/node/test/parallel/test-buffer-bigint64.js +test/js/node/test/parallel/test-buffer-bytelength.js +test/js/node/test/parallel/test-buffer-compare-offset.js +test/js/node/test/parallel/test-buffer-compare.js +test/js/node/test/parallel/test-buffer-concat.js +test/js/node/test/parallel/test-buffer-constants.js +test/js/node/test/parallel/test-buffer-constructor-deprecation-error.js +test/js/node/test/parallel/test-buffer-constructor-node-modules-paths.js +test/js/node/test/parallel/test-buffer-constructor-node-modules.js +test/js/node/test/parallel/test-buffer-constructor-outside-node-modules.js +test/js/node/test/parallel/test-buffer-copy.js +test/js/node/test/parallel/test-buffer-equals.js +test/js/node/test/parallel/test-buffer-failed-alloc-typed-arrays.js +test/js/node/test/parallel/test-buffer-fakes.js +test/js/node/test/parallel/test-buffer-fill.js +test/js/node/test/parallel/test-buffer-from.js +test/js/node/test/parallel/test-buffer-includes.js +test/js/node/test/parallel/test-buffer-indexof.js +test/js/node/test/parallel/test-buffer-inheritance.js +test/js/node/test/parallel/test-buffer-inspect.js +test/js/node/test/parallel/test-buffer-isascii.js +test/js/node/test/parallel/test-buffer-isencoding.js +test/js/node/test/parallel/test-buffer-isutf8.js +test/js/node/test/parallel/test-buffer-iterator.js +test/js/node/test/parallel/test-buffer-new.js +test/js/node/test/parallel/test-buffer-no-negative-allocation.js +test/js/node/test/parallel/test-buffer-nopendingdep-map.js +test/js/node/test/parallel/test-buffer-of-no-deprecation.js +test/js/node/test/parallel/test-buffer-over-max-length.js +test/js/node/test/parallel/test-buffer-parent-property.js +test/js/node/test/parallel/test-buffer-pending-deprecation.js +test/js/node/test/parallel/test-buffer-pool-untransferable.js +test/js/node/test/parallel/test-buffer-prototype-inspect.js +test/js/node/test/parallel/test-buffer-read.js +test/js/node/test/parallel/test-buffer-readdouble.js +test/js/node/test/parallel/test-buffer-readfloat.js +test/js/node/test/parallel/test-buffer-readint.js +test/js/node/test/parallel/test-buffer-readuint.js +test/js/node/test/parallel/test-buffer-resizable.js +test/js/node/test/parallel/test-buffer-safe-unsafe.js +test/js/node/test/parallel/test-buffer-set-inspect-max-bytes.js +test/js/node/test/parallel/test-buffer-sharedarraybuffer.js +test/js/node/test/parallel/test-buffer-slice.js +test/js/node/test/parallel/test-buffer-slow.js +test/js/node/test/parallel/test-buffer-swap.js +test/js/node/test/parallel/test-buffer-tojson.js +test/js/node/test/parallel/test-buffer-tostring-range.js +test/js/node/test/parallel/test-buffer-tostring-rangeerror.js +test/js/node/test/parallel/test-buffer-tostring.js +test/js/node/test/parallel/test-buffer-write-fast.js +test/js/node/test/parallel/test-buffer-write.js +test/js/node/test/parallel/test-buffer-writedouble.js +test/js/node/test/parallel/test-buffer-writefloat.js +test/js/node/test/parallel/test-buffer-writeint.js +test/js/node/test/parallel/test-buffer-writeuint.js +test/js/node/test/parallel/test-buffer-zero-fill-cli.js +test/js/node/test/parallel/test-buffer-zero-fill-reset.js +test/js/node/test/parallel/test-buffer-zero-fill.js +test/js/node/test/parallel/test-c-ares.js +test/js/node/test/parallel/test-child-process-advanced-serialization-largebuffer.js +test/js/node/test/parallel/test-child-process-advanced-serialization.js +test/js/node/test/parallel/test-child-process-can-write-to-stdout.js +test/js/node/test/parallel/test-child-process-constructor.js +test/js/node/test/parallel/test-child-process-cwd.js +test/js/node/test/parallel/test-child-process-default-options.js +test/js/node/test/parallel/test-child-process-destroy.js +test/js/node/test/parallel/test-child-process-detached.js +test/js/node/test/parallel/test-child-process-dgram-reuseport.js +test/js/node/test/parallel/test-child-process-disconnect.js +test/js/node/test/parallel/test-child-process-double-pipe.js +test/js/node/test/parallel/test-child-process-emfile.js +test/js/node/test/parallel/test-child-process-env.js +test/js/node/test/parallel/test-child-process-exec-abortcontroller-promisified.js +test/js/node/test/parallel/test-child-process-exec-any-shells-windows.js +test/js/node/test/parallel/test-child-process-exec-cwd.js +test/js/node/test/parallel/test-child-process-exec-encoding.js +test/js/node/test/parallel/test-child-process-exec-env.js +test/js/node/test/parallel/test-child-process-exec-error.js +test/js/node/test/parallel/test-child-process-exec-maxbuf.js +test/js/node/test/parallel/test-child-process-exec-std-encoding.js +test/js/node/test/parallel/test-child-process-exec-stdout-stderr-data-string.js +test/js/node/test/parallel/test-child-process-exec-timeout-expire.js +test/js/node/test/parallel/test-child-process-exec-timeout-kill.js +test/js/node/test/parallel/test-child-process-exec-timeout-not-expired.js +test/js/node/test/parallel/test-child-process-execFile-promisified-abortController.js +test/js/node/test/parallel/test-child-process-execfile-maxbuf.js +test/js/node/test/parallel/test-child-process-execfile.js +test/js/node/test/parallel/test-child-process-execfilesync-maxbuf.js +test/js/node/test/parallel/test-child-process-execsync-maxbuf.js +test/js/node/test/parallel/test-child-process-exit-code.js +test/js/node/test/parallel/test-child-process-flush-stdio.js +test/js/node/test/parallel/test-child-process-fork-abort-signal.js +test/js/node/test/parallel/test-child-process-fork-and-spawn.js +test/js/node/test/parallel/test-child-process-fork-args.js +test/js/node/test/parallel/test-child-process-fork-close.js +test/js/node/test/parallel/test-child-process-fork-closed-channel-segfault.js +test/js/node/test/parallel/test-child-process-fork-detached.js +test/js/node/test/parallel/test-child-process-fork-exec-argv.js +test/js/node/test/parallel/test-child-process-fork-exec-path.js +test/js/node/test/parallel/test-child-process-fork-no-shell.js +test/js/node/test/parallel/test-child-process-fork-ref.js +test/js/node/test/parallel/test-child-process-fork-ref2.js +test/js/node/test/parallel/test-child-process-fork-stdio-string-variant.js +test/js/node/test/parallel/test-child-process-fork-timeout-kill-signal.js +test/js/node/test/parallel/test-child-process-fork-url.mjs +test/js/node/test/parallel/test-child-process-fork.js +test/js/node/test/parallel/test-child-process-fork3.js +test/js/node/test/parallel/test-child-process-ipc-next-tick.js +test/js/node/test/parallel/test-child-process-ipc.js +test/js/node/test/parallel/test-child-process-kill.js +test/js/node/test/parallel/test-child-process-net-reuseport.js +test/js/node/test/parallel/test-child-process-no-deprecation.js +test/js/node/test/parallel/test-child-process-promisified.js +test/js/node/test/parallel/test-child-process-reject-null-bytes.js +test/js/node/test/parallel/test-child-process-send-after-close.js +test/js/node/test/parallel/test-child-process-send-cb.js +test/js/node/test/parallel/test-child-process-send-type-error.js +test/js/node/test/parallel/test-child-process-send-utf8.js +test/js/node/test/parallel/test-child-process-set-blocking.js +test/js/node/test/parallel/test-child-process-silent.js +test/js/node/test/parallel/test-child-process-spawn-args.js +test/js/node/test/parallel/test-child-process-spawn-argv0.js +test/js/node/test/parallel/test-child-process-spawn-controller.js +test/js/node/test/parallel/test-child-process-spawn-error.js +test/js/node/test/parallel/test-child-process-spawn-event.js +test/js/node/test/parallel/test-child-process-spawn-shell.js +test/js/node/test/parallel/test-child-process-spawn-timeout-kill-signal.js +test/js/node/test/parallel/test-child-process-spawn-typeerror.js +test/js/node/test/parallel/test-child-process-spawnsync-args.js +test/js/node/test/parallel/test-child-process-spawnsync-env.js +test/js/node/test/parallel/test-child-process-spawnsync-input.js +test/js/node/test/parallel/test-child-process-spawnsync-kill-signal.js +test/js/node/test/parallel/test-child-process-spawnsync-maxbuf.js +test/js/node/test/parallel/test-child-process-spawnsync-shell.js +test/js/node/test/parallel/test-child-process-spawnsync-timeout.js +test/js/node/test/parallel/test-child-process-spawnsync-validation-errors.js +test/js/node/test/parallel/test-child-process-spawnsync.js +test/js/node/test/parallel/test-child-process-stdin-ipc.js +test/js/node/test/parallel/test-child-process-stdin.js +test/js/node/test/parallel/test-child-process-stdio-big-write-end.js +test/js/node/test/parallel/test-child-process-stdio-inherit.js +test/js/node/test/parallel/test-child-process-stdio-overlapped.js +test/js/node/test/parallel/test-child-process-stdio.js +test/js/node/test/parallel/test-child-process-stdout-flush-exit.js +test/js/node/test/parallel/test-child-process-stdout-flush.js +test/js/node/test/parallel/test-child-process-stdout-ipc.js +test/js/node/test/parallel/test-child-process-windows-hide.js +test/js/node/test/parallel/test-cli-eval-event.js +test/js/node/test/parallel/test-cli-options-precedence.js +test/js/node/test/parallel/test-client-request-destroy.js +test/js/node/test/parallel/test-cluster-advanced-serialization.js +test/js/node/test/parallel/test-cluster-bind-privileged-port.js +test/js/node/test/parallel/test-cluster-call-and-destroy.js +test/js/node/test/parallel/test-cluster-child-index-dgram.js +test/js/node/test/parallel/test-cluster-child-index-net.js +test/js/node/test/parallel/test-cluster-concurrent-disconnect.js +test/js/node/test/parallel/test-cluster-cwd.js +test/js/node/test/parallel/test-cluster-dgram-ipv6only.js +test/js/node/test/parallel/test-cluster-dgram-reuse.js +test/js/node/test/parallel/test-cluster-dgram-reuseport.js +test/js/node/test/parallel/test-cluster-disconnect-before-exit.js +test/js/node/test/parallel/test-cluster-disconnect-exitedAfterDisconnect-race.js +test/js/node/test/parallel/test-cluster-disconnect-idle-worker.js +test/js/node/test/parallel/test-cluster-disconnect-leak.js +test/js/node/test/parallel/test-cluster-disconnect-with-no-workers.js +test/js/node/test/parallel/test-cluster-eaddrinuse.js +test/js/node/test/parallel/test-cluster-fork-env.js +test/js/node/test/parallel/test-cluster-fork-windowsHide.js +test/js/node/test/parallel/test-cluster-http-pipe.js +test/js/node/test/parallel/test-cluster-invalid-message.js +test/js/node/test/parallel/test-cluster-ipc-throw.js +test/js/node/test/parallel/test-cluster-kill-disconnect.js +test/js/node/test/parallel/test-cluster-kill-infinite-loop.js +test/js/node/test/parallel/test-cluster-listening-port.js +test/js/node/test/parallel/test-cluster-message.js +test/js/node/test/parallel/test-cluster-net-listen.js +test/js/node/test/parallel/test-cluster-primary-error.js +test/js/node/test/parallel/test-cluster-primary-kill.js +test/js/node/test/parallel/test-cluster-process-disconnect.js +test/js/node/test/parallel/test-cluster-rr-domain-listen.js +test/js/node/test/parallel/test-cluster-rr-handle-keep-loop-alive.js +test/js/node/test/parallel/test-cluster-rr-ref.js +test/js/node/test/parallel/test-cluster-send-deadlock.js +test/js/node/test/parallel/test-cluster-setup-primary-argv.js +test/js/node/test/parallel/test-cluster-setup-primary-cumulative.js +test/js/node/test/parallel/test-cluster-setup-primary-emit.js +test/js/node/test/parallel/test-cluster-setup-primary-multiple.js +test/js/node/test/parallel/test-cluster-setup-primary.js +test/js/node/test/parallel/test-cluster-shared-handle-bind-privileged-port.js +test/js/node/test/parallel/test-cluster-uncaught-exception.js +test/js/node/test/parallel/test-cluster-worker-constructor.js +test/js/node/test/parallel/test-cluster-worker-death.js +test/js/node/test/parallel/test-cluster-worker-destroy.js +test/js/node/test/parallel/test-cluster-worker-disconnect-on-error.js +test/js/node/test/parallel/test-cluster-worker-disconnect.js +test/js/node/test/parallel/test-cluster-worker-events.js +test/js/node/test/parallel/test-cluster-worker-exit.js +test/js/node/test/parallel/test-cluster-worker-forced-exit.js +test/js/node/test/parallel/test-cluster-worker-init.js +test/js/node/test/parallel/test-cluster-worker-isconnected.js +test/js/node/test/parallel/test-cluster-worker-isdead.js +test/js/node/test/parallel/test-cluster-worker-kill.js +test/js/node/test/parallel/test-cluster-worker-no-exit.js +test/js/node/test/parallel/test-cluster-worker-wait-server-close.js +test/js/node/test/parallel/test-common-countdown.js +test/js/node/test/parallel/test-common-expect-warning.js +test/js/node/test/parallel/test-common-gc.js +test/js/node/test/parallel/test-common-must-not-call.js +test/js/node/test/parallel/test-config-json-schema.js +test/js/node/test/parallel/test-console-assign-undefined.js +test/js/node/test/parallel/test-console-async-write-error.js +test/js/node/test/parallel/test-console-group.js +test/js/node/test/parallel/test-console-instance.js +test/js/node/test/parallel/test-console-issue-43095.js +test/js/node/test/parallel/test-console-log-stdio-broken-dest.js +test/js/node/test/parallel/test-console-log-throw-primitive.js +test/js/node/test/parallel/test-console-methods.js +test/js/node/test/parallel/test-console-no-swallow-stack-overflow.js +test/js/node/test/parallel/test-console-not-call-toString.js +test/js/node/test/parallel/test-console-self-assign.js +test/js/node/test/parallel/test-console-sync-write-error.js +test/js/node/test/parallel/test-console-tty-colors.js +test/js/node/test/parallel/test-console-with-frozen-intrinsics.js +test/js/node/test/parallel/test-coverage-with-inspector-disabled.js +test/js/node/test/parallel/test-crypto-aes-wrap.js +test/js/node/test/parallel/test-crypto-async-sign-verify.js +test/js/node/test/parallel/test-crypto-authenticated-stream.js +test/js/node/test/parallel/test-crypto-authenticated.js +test/js/node/test/parallel/test-crypto-certificate.js +test/js/node/test/parallel/test-crypto-cipheriv-decipheriv.js +test/js/node/test/parallel/test-crypto-classes.js +test/js/node/test/parallel/test-crypto-des3-wrap.js +test/js/node/test/parallel/test-crypto-dh-constructor.js +test/js/node/test/parallel/test-crypto-dh-curves.js +test/js/node/test/parallel/test-crypto-dh-errors.js +test/js/node/test/parallel/test-crypto-dh-generate-keys.js +test/js/node/test/parallel/test-crypto-dh-group-setters.js +test/js/node/test/parallel/test-crypto-dh-leak.js +test/js/node/test/parallel/test-crypto-dh-modp2-views.js +test/js/node/test/parallel/test-crypto-dh-modp2.js +test/js/node/test/parallel/test-crypto-dh-odd-key.js +test/js/node/test/parallel/test-crypto-dh-padding.js +test/js/node/test/parallel/test-crypto-dh-shared.js +test/js/node/test/parallel/test-crypto-dh-stateless.js +test/js/node/test/parallel/test-crypto-dh.js +test/js/node/test/parallel/test-crypto-domain.js +test/js/node/test/parallel/test-crypto-ecb.js +test/js/node/test/parallel/test-crypto-ecdh-convert-key.js +test/js/node/test/parallel/test-crypto-encoding-validation-error.js +test/js/node/test/parallel/test-crypto-fips.js +test/js/node/test/parallel/test-crypto-from-binary.js +test/js/node/test/parallel/test-crypto-gcm-explicit-short-tag.js +test/js/node/test/parallel/test-crypto-gcm-implicit-short-tag.js +test/js/node/test/parallel/test-crypto-getcipherinfo.js +test/js/node/test/parallel/test-crypto-hash-stream-pipe.js +test/js/node/test/parallel/test-crypto-hash.js +test/js/node/test/parallel/test-crypto-hkdf.js +test/js/node/test/parallel/test-crypto-hmac.js +test/js/node/test/parallel/test-crypto-key-objects.js +test/js/node/test/parallel/test-crypto-keygen-async-dsa-key-object.js +test/js/node/test/parallel/test-crypto-keygen-async-dsa.js +test/js/node/test/parallel/test-crypto-keygen-async-elliptic-curve-jwk-ec.js +test/js/node/test/parallel/test-crypto-keygen-async-elliptic-curve-jwk-rsa.js +test/js/node/test/parallel/test-crypto-keygen-async-elliptic-curve-jwk.js +test/js/node/test/parallel/test-crypto-keygen-async-encrypted-private-key-der.js +test/js/node/test/parallel/test-crypto-keygen-async-encrypted-private-key.js +test/js/node/test/parallel/test-crypto-keygen-async-explicit-elliptic-curve-encrypted-p256.js +test/js/node/test/parallel/test-crypto-keygen-async-explicit-elliptic-curve-encrypted.js.js +test/js/node/test/parallel/test-crypto-keygen-async-explicit-elliptic-curve.js +test/js/node/test/parallel/test-crypto-keygen-async-named-elliptic-curve-encrypted-p256.js +test/js/node/test/parallel/test-crypto-keygen-async-named-elliptic-curve-encrypted.js +test/js/node/test/parallel/test-crypto-keygen-async-named-elliptic-curve.js +test/js/node/test/parallel/test-crypto-keygen-async-rsa.js +test/js/node/test/parallel/test-crypto-keygen-bit-length.js +test/js/node/test/parallel/test-crypto-keygen-deprecation.js +test/js/node/test/parallel/test-crypto-keygen-dh-classic.js +test/js/node/test/parallel/test-crypto-keygen-duplicate-deprecated-option.js +test/js/node/test/parallel/test-crypto-keygen-eddsa.js +test/js/node/test/parallel/test-crypto-keygen-empty-passphrase-no-error.js +test/js/node/test/parallel/test-crypto-keygen-empty-passphrase-no-prompt.js +test/js/node/test/parallel/test-crypto-keygen-invalid-parameter-encoding-dsa.js +test/js/node/test/parallel/test-crypto-keygen-invalid-parameter-encoding-ec.js +test/js/node/test/parallel/test-crypto-keygen-key-object-without-encoding.js +test/js/node/test/parallel/test-crypto-keygen-key-objects.js +test/js/node/test/parallel/test-crypto-keygen-missing-oid.js +test/js/node/test/parallel/test-crypto-keygen-no-rsassa-pss-params.js +test/js/node/test/parallel/test-crypto-keygen-non-standard-public-exponent.js +test/js/node/test/parallel/test-crypto-keygen-promisify.js +test/js/node/test/parallel/test-crypto-keygen-rfc8017-9-1.js +test/js/node/test/parallel/test-crypto-keygen-rfc8017-a-2-3.js +test/js/node/test/parallel/test-crypto-keygen-rsa-pss.js +test/js/node/test/parallel/test-crypto-keygen-sync.js +test/js/node/test/parallel/test-crypto-keygen.js +test/js/node/test/parallel/test-crypto-lazy-transform-writable.js +test/js/node/test/parallel/test-crypto-no-algorithm.js +test/js/node/test/parallel/test-crypto-oaep-zero-length.js +test/js/node/test/parallel/test-crypto-oneshot-hash.js +test/js/node/test/parallel/test-crypto-op-during-process-exit.js +test/js/node/test/parallel/test-crypto-padding-aes256.js +test/js/node/test/parallel/test-crypto-padding.js +test/js/node/test/parallel/test-crypto-pbkdf2.js +test/js/node/test/parallel/test-crypto-prime.js +test/js/node/test/parallel/test-crypto-private-decrypt-gh32240.js +test/js/node/test/parallel/test-crypto-psychic-signatures.js +test/js/node/test/parallel/test-crypto-publicDecrypt-fails-first-time.js +test/js/node/test/parallel/test-crypto-random.js +test/js/node/test/parallel/test-crypto-randomfillsync-regression.js +test/js/node/test/parallel/test-crypto-randomuuid.js +test/js/node/test/parallel/test-crypto-rsa-dsa.js +test/js/node/test/parallel/test-crypto-scrypt.js +test/js/node/test/parallel/test-crypto-secret-keygen.js +test/js/node/test/parallel/test-crypto-secure-heap.js +test/js/node/test/parallel/test-crypto-sign-verify.js +test/js/node/test/parallel/test-crypto-stream.js +test/js/node/test/parallel/test-crypto-subtle-zero-length.js +test/js/node/test/parallel/test-crypto-update-encoding.js +test/js/node/test/parallel/test-crypto-verify-failure.js +test/js/node/test/parallel/test-crypto-webcrypto-aes-decrypt-tag-too-small.js +test/js/node/test/parallel/test-crypto-worker-thread.js +test/js/node/test/parallel/test-crypto-x509.js +test/js/node/test/parallel/test-datetime-change-notify.js +test/js/node/test/parallel/test-debug-process.js +test/js/node/test/parallel/test-debugger-backtrace.js +test/js/node/test/parallel/test-debugger-exec.js +test/js/node/test/parallel/test-debugger-invalid-json.mjs +test/js/node/test/parallel/test-debugger-low-level.js +test/js/node/test/parallel/test-debugger-preserve-breaks.js +test/js/node/test/parallel/test-debugger-repeat-last.js +test/js/node/test/parallel/test-debugger-restart-message.js +test/js/node/test/parallel/test-delayed-require.js +test/js/node/test/parallel/test-destroy-socket-in-lookup.js +test/js/node/test/parallel/test-dgram-abort-closed.js +test/js/node/test/parallel/test-dgram-address.js +test/js/node/test/parallel/test-dgram-async-dispose.mjs +test/js/node/test/parallel/test-dgram-bind-default-address.js +test/js/node/test/parallel/test-dgram-bind-error-repeat.js +test/js/node/test/parallel/test-dgram-bind-socket-close-before-lookup.js +test/js/node/test/parallel/test-dgram-bind.js +test/js/node/test/parallel/test-dgram-bytes-length.js +test/js/node/test/parallel/test-dgram-close-during-bind.js +test/js/node/test/parallel/test-dgram-close-in-listening.js +test/js/node/test/parallel/test-dgram-close-is-not-callback.js +test/js/node/test/parallel/test-dgram-close-signal.js +test/js/node/test/parallel/test-dgram-close.js +test/js/node/test/parallel/test-dgram-cluster-close-during-bind.js +test/js/node/test/parallel/test-dgram-cluster-close-in-listening.js +test/js/node/test/parallel/test-dgram-connect-send-callback-buffer-length.js +test/js/node/test/parallel/test-dgram-connect-send-callback-buffer.js +test/js/node/test/parallel/test-dgram-connect-send-callback-multi-buffer.js +test/js/node/test/parallel/test-dgram-connect-send-default-host.js +test/js/node/test/parallel/test-dgram-connect-send-empty-array.js +test/js/node/test/parallel/test-dgram-connect-send-empty-buffer.js +test/js/node/test/parallel/test-dgram-connect-send-empty-packet.js +test/js/node/test/parallel/test-dgram-connect-send-multi-buffer-copy.js +test/js/node/test/parallel/test-dgram-connect-send-multi-string-array.js +test/js/node/test/parallel/test-dgram-connect.js +test/js/node/test/parallel/test-dgram-custom-lookup.js +test/js/node/test/parallel/test-dgram-deprecation-error.js +test/js/node/test/parallel/test-dgram-error-message-address.js +test/js/node/test/parallel/test-dgram-implicit-bind.js +test/js/node/test/parallel/test-dgram-ipv6only.js +test/js/node/test/parallel/test-dgram-listen-after-bind.js +test/js/node/test/parallel/test-dgram-membership.js +test/js/node/test/parallel/test-dgram-msgsize.js +test/js/node/test/parallel/test-dgram-multicast-loopback.js +test/js/node/test/parallel/test-dgram-multicast-set-interface.js +test/js/node/test/parallel/test-dgram-multicast-setTTL.js +test/js/node/test/parallel/test-dgram-oob-buffer.js +test/js/node/test/parallel/test-dgram-recv-error.js +test/js/node/test/parallel/test-dgram-ref.js +test/js/node/test/parallel/test-dgram-reuseport.js +test/js/node/test/parallel/test-dgram-send-address-types.js +test/js/node/test/parallel/test-dgram-send-bad-arguments.js +test/js/node/test/parallel/test-dgram-send-callback-buffer-empty-address.js +test/js/node/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js +test/js/node/test/parallel/test-dgram-send-callback-buffer-length.js +test/js/node/test/parallel/test-dgram-send-callback-buffer.js +test/js/node/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js +test/js/node/test/parallel/test-dgram-send-callback-multi-buffer.js +test/js/node/test/parallel/test-dgram-send-callback-recursive.js +test/js/node/test/parallel/test-dgram-send-cb-quelches-error.js +test/js/node/test/parallel/test-dgram-send-default-host.js +test/js/node/test/parallel/test-dgram-send-empty-array.js +test/js/node/test/parallel/test-dgram-send-empty-buffer.js +test/js/node/test/parallel/test-dgram-send-empty-packet.js +test/js/node/test/parallel/test-dgram-send-error.js +test/js/node/test/parallel/test-dgram-send-invalid-msg-type.js +test/js/node/test/parallel/test-dgram-send-multi-buffer-copy.js +test/js/node/test/parallel/test-dgram-send-multi-string-array.js +test/js/node/test/parallel/test-dgram-sendto.js +test/js/node/test/parallel/test-dgram-setBroadcast.js +test/js/node/test/parallel/test-dgram-setTTL.js +test/js/node/test/parallel/test-dgram-udp4.js +test/js/node/test/parallel/test-dgram-udp6-link-local-address.js +test/js/node/test/parallel/test-dgram-udp6-send-default-host.js +test/js/node/test/parallel/test-dgram-unref-in-cluster.js +test/js/node/test/parallel/test-dgram-unref.js +test/js/node/test/parallel/test-diagnostics-channel-bind-store.js +test/js/node/test/parallel/test-diagnostics-channel-has-subscribers.js +test/js/node/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js +test/js/node/test/parallel/test-diagnostics-channel-pub-sub.js +test/js/node/test/parallel/test-diagnostics-channel-safe-subscriber-errors.js +test/js/node/test/parallel/test-diagnostics-channel-symbol-named.js +test/js/node/test/parallel/test-diagnostics-channel-sync-unsubscribe.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-callback-error.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-callback.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-promise-error.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-promise-run-stores.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-promise.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync-error.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync-run-stores.js +test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync.js +test/js/node/test/parallel/test-diagnostics-channel-udp.js +test/js/node/test/parallel/test-dns-cancel-reverse-lookup.js +test/js/node/test/parallel/test-dns-channel-cancel-promise.js +test/js/node/test/parallel/test-dns-channel-cancel.js +test/js/node/test/parallel/test-dns-channel-timeout.js +test/js/node/test/parallel/test-dns-default-order-ipv4.js +test/js/node/test/parallel/test-dns-default-order-ipv6.js +test/js/node/test/parallel/test-dns-default-order-verbatim.js +test/js/node/test/parallel/test-dns-get-server.js +test/js/node/test/parallel/test-dns-lookup-promises-options-deprecated.js +test/js/node/test/parallel/test-dns-lookup.js +test/js/node/test/parallel/test-dns-lookupService-promises.js +test/js/node/test/parallel/test-dns-lookupService.js +test/js/node/test/parallel/test-dns-multi-channel.js +test/js/node/test/parallel/test-dns-promises-exists.js +test/js/node/test/parallel/test-dns-resolve-promises.js +test/js/node/test/parallel/test-dns-resolveany-bad-ancount.js +test/js/node/test/parallel/test-dns-resolveany.js +test/js/node/test/parallel/test-dns-resolvens-typeerror.js +test/js/node/test/parallel/test-dns-set-default-order.js +test/js/node/test/parallel/test-dns-setlocaladdress.js +test/js/node/test/parallel/test-dns-setserver-when-querying.js +test/js/node/test/parallel/test-dns-setservers-type-check.js +test/js/node/test/parallel/test-dns.js +test/js/node/test/parallel/test-domain-crypto.js +test/js/node/test/parallel/test-domain-ee-error-listener.js +test/js/node/test/parallel/test-domain-nested-throw.js +test/js/node/test/parallel/test-domain-vm-promise-isolation.js +test/js/node/test/parallel/test-domexception-cause.js +test/js/node/test/parallel/test-dsa-fips-invalid-key.js +test/js/node/test/parallel/test-emit-after-uncaught-exception.js +test/js/node/test/parallel/test-error-prepare-stack-trace.js +test/js/node/test/parallel/test-eslint-alphabetize-errors.js +test/js/node/test/parallel/test-eslint-alphabetize-primordials.js +test/js/node/test/parallel/test-eslint-async-iife-no-unused-result.js +test/js/node/test/parallel/test-eslint-avoid-prototype-pollution.js +test/js/node/test/parallel/test-eslint-crypto-check.js +test/js/node/test/parallel/test-eslint-documented-deprecation-codes.js +test/js/node/test/parallel/test-eslint-documented-errors.js +test/js/node/test/parallel/test-eslint-duplicate-requires.js +test/js/node/test/parallel/test-eslint-eslint-check.js +test/js/node/test/parallel/test-eslint-inspector-check.js +test/js/node/test/parallel/test-eslint-lowercase-name-for-primitive.js +test/js/node/test/parallel/test-eslint-no-array-destructuring.js +test/js/node/test/parallel/test-eslint-no-unescaped-regexp-dot.js +test/js/node/test/parallel/test-eslint-non-ascii-character.js +test/js/node/test/parallel/test-eslint-prefer-assert-iferror.js +test/js/node/test/parallel/test-eslint-prefer-assert-methods.js +test/js/node/test/parallel/test-eslint-prefer-common-mustnotcall.js +test/js/node/test/parallel/test-eslint-prefer-common-mustsucceed.js +test/js/node/test/parallel/test-eslint-prefer-optional-chaining.js +test/js/node/test/parallel/test-eslint-prefer-primordials.js +test/js/node/test/parallel/test-eslint-prefer-proto.js +test/js/node/test/parallel/test-eslint-prefer-util-format-errors.js +test/js/node/test/parallel/test-eslint-require-common-first.js +test/js/node/test/parallel/test-eslint-required-modules.js +test/js/node/test/parallel/test-eval-strict-referenceerror.js +test/js/node/test/parallel/test-eval.js +test/js/node/test/parallel/test-event-capture-rejections.js +test/js/node/test/parallel/test-event-emitter-add-listeners.js +test/js/node/test/parallel/test-event-emitter-check-listener-leaks.js +test/js/node/test/parallel/test-event-emitter-emit-context.js +test/js/node/test/parallel/test-event-emitter-error-monitor.js +test/js/node/test/parallel/test-event-emitter-errors.js +test/js/node/test/parallel/test-event-emitter-get-max-listeners.js +test/js/node/test/parallel/test-event-emitter-invalid-listener.js +test/js/node/test/parallel/test-event-emitter-listener-count.js +test/js/node/test/parallel/test-event-emitter-listeners-side-effects.js +test/js/node/test/parallel/test-event-emitter-listeners.js +test/js/node/test/parallel/test-event-emitter-max-listeners-warning-for-null.js +test/js/node/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js +test/js/node/test/parallel/test-event-emitter-max-listeners-warning.js +test/js/node/test/parallel/test-event-emitter-max-listeners.js +test/js/node/test/parallel/test-event-emitter-method-names.js +test/js/node/test/parallel/test-event-emitter-modify-in-emit.js +test/js/node/test/parallel/test-event-emitter-no-error-provided-to-error-event.js +test/js/node/test/parallel/test-event-emitter-num-args.js +test/js/node/test/parallel/test-event-emitter-once.js +test/js/node/test/parallel/test-event-emitter-prepend.js +test/js/node/test/parallel/test-event-emitter-remove-all-listeners.js +test/js/node/test/parallel/test-event-emitter-remove-listeners.js +test/js/node/test/parallel/test-event-emitter-set-max-listeners-side-effects.js +test/js/node/test/parallel/test-event-emitter-special-event-names.js +test/js/node/test/parallel/test-event-emitter-subclass.js +test/js/node/test/parallel/test-event-emitter-symbols.js +test/js/node/test/parallel/test-event-target.js +test/js/node/test/parallel/test-events-add-abort-listener.mjs +test/js/node/test/parallel/test-events-customevent.js +test/js/node/test/parallel/test-events-getmaxlisteners.js +test/js/node/test/parallel/test-events-list.js +test/js/node/test/parallel/test-events-listener-count-with-listener.js +test/js/node/test/parallel/test-events-on-async-iterator.js +test/js/node/test/parallel/test-events-once.js +test/js/node/test/parallel/test-events-static-geteventlisteners.js +test/js/node/test/parallel/test-events-uncaught-exception-stack.js +test/js/node/test/parallel/test-eventsource-disabled.js +test/js/node/test/parallel/test-eventtarget-once-twice.js +test/js/node/test/parallel/test-eventtarget.js +test/js/node/test/parallel/test-exception-handler.js +test/js/node/test/parallel/test-exception-handler2.js +test/js/node/test/parallel/test-fetch.mjs +test/js/node/test/parallel/test-file-read-noexist.js +test/js/node/test/parallel/test-file-validate-mode-flag.js +test/js/node/test/parallel/test-file-write-stream.js +test/js/node/test/parallel/test-file-write-stream2.js +test/js/node/test/parallel/test-file-write-stream3.js +test/js/node/test/parallel/test-file-write-stream4.js +test/js/node/test/parallel/test-file-write-stream5.js +test/js/node/test/parallel/test-filehandle-close.js +test/js/node/test/parallel/test-finalization-registry-shutdown.js +test/js/node/test/parallel/test-fs-access.js +test/js/node/test/parallel/test-fs-append-file-flush.js +test/js/node/test/parallel/test-fs-append-file-sync.js +test/js/node/test/parallel/test-fs-append-file.js +test/js/node/test/parallel/test-fs-assert-encoding-error.js +test/js/node/test/parallel/test-fs-buffer.js +test/js/node/test/parallel/test-fs-buffertype-writesync.js +test/js/node/test/parallel/test-fs-chmod-mask.js +test/js/node/test/parallel/test-fs-chmod.js +test/js/node/test/parallel/test-fs-chown-type-check.js +test/js/node/test/parallel/test-fs-close-errors.js +test/js/node/test/parallel/test-fs-close.js +test/js/node/test/parallel/test-fs-constants.js +test/js/node/test/parallel/test-fs-copyfile-respect-permissions.js +test/js/node/test/parallel/test-fs-copyfile.js +test/js/node/test/parallel/test-fs-empty-readStream.js +test/js/node/test/parallel/test-fs-exists.js +test/js/node/test/parallel/test-fs-existssync-false.js +test/js/node/test/parallel/test-fs-fchmod.js +test/js/node/test/parallel/test-fs-fchown.js +test/js/node/test/parallel/test-fs-filehandle-use-after-close.js +test/js/node/test/parallel/test-fs-fsync.js +test/js/node/test/parallel/test-fs-lchmod.js +test/js/node/test/parallel/test-fs-lchown.js +test/js/node/test/parallel/test-fs-link.js +test/js/node/test/parallel/test-fs-long-path.js +test/js/node/test/parallel/test-fs-make-callback.js +test/js/node/test/parallel/test-fs-makeStatsCallback.js +test/js/node/test/parallel/test-fs-mkdir-mode-mask.js +test/js/node/test/parallel/test-fs-mkdir-recursive-eaccess.js +test/js/node/test/parallel/test-fs-mkdir-rmdir.js +test/js/node/test/parallel/test-fs-mkdir.js +test/js/node/test/parallel/test-fs-mkdtemp-prefix-check.js +test/js/node/test/parallel/test-fs-mkdtemp.js +test/js/node/test/parallel/test-fs-non-number-arguments-throw.js +test/js/node/test/parallel/test-fs-null-bytes.js +test/js/node/test/parallel/test-fs-open-mode-mask.js +test/js/node/test/parallel/test-fs-open-no-close.js +test/js/node/test/parallel/test-fs-open-numeric-flags.js +test/js/node/test/parallel/test-fs-open.js +test/js/node/test/parallel/test-fs-operations-with-surrogate-pairs.js +test/js/node/test/parallel/test-fs-options-immutable.js +test/js/node/test/parallel/test-fs-promises-exists.js +test/js/node/test/parallel/test-fs-promises-file-handle-append-file.js +test/js/node/test/parallel/test-fs-promises-file-handle-chmod.js +test/js/node/test/parallel/test-fs-promises-file-handle-dispose.js +test/js/node/test/parallel/test-fs-promises-file-handle-read-worker.js +test/js/node/test/parallel/test-fs-promises-file-handle-read.js +test/js/node/test/parallel/test-fs-promises-file-handle-readFile.js +test/js/node/test/parallel/test-fs-promises-file-handle-stat.js +test/js/node/test/parallel/test-fs-promises-file-handle-stream.js +test/js/node/test/parallel/test-fs-promises-file-handle-sync.js +test/js/node/test/parallel/test-fs-promises-file-handle-truncate.js +test/js/node/test/parallel/test-fs-promises-file-handle-write.js +test/js/node/test/parallel/test-fs-promises-file-handle-writeFile.js +test/js/node/test/parallel/test-fs-promises-readfile-empty.js +test/js/node/test/parallel/test-fs-promises-readfile-with-fd.js +test/js/node/test/parallel/test-fs-promises-readfile.js +test/js/node/test/parallel/test-fs-promises-watch.js +test/js/node/test/parallel/test-fs-promises-write-optional-params.js +test/js/node/test/parallel/test-fs-promises-writefile-typedarray.js +test/js/node/test/parallel/test-fs-promises-writefile-with-fd.js +test/js/node/test/parallel/test-fs-promises-writefile.js +test/js/node/test/parallel/test-fs-promisified.js +test/js/node/test/parallel/test-fs-read-empty-buffer.js +test/js/node/test/parallel/test-fs-read-file-assert-encoding.js +test/js/node/test/parallel/test-fs-read-file-sync-hostname.js +test/js/node/test/parallel/test-fs-read-file-sync.js +test/js/node/test/parallel/test-fs-read-offset-null.js +test/js/node/test/parallel/test-fs-read-optional-params.js +test/js/node/test/parallel/test-fs-read-position-validation.mjs +test/js/node/test/parallel/test-fs-read-promises-optional-params.js +test/js/node/test/parallel/test-fs-read-promises-position-validation.mjs +test/js/node/test/parallel/test-fs-read-stream-autoClose.js +test/js/node/test/parallel/test-fs-read-stream-concurrent-reads.js +test/js/node/test/parallel/test-fs-read-stream-double-close.js +test/js/node/test/parallel/test-fs-read-stream-encoding.js +test/js/node/test/parallel/test-fs-read-stream-err.js +test/js/node/test/parallel/test-fs-read-stream-fd-leak.js +test/js/node/test/parallel/test-fs-read-stream-fd.js +test/js/node/test/parallel/test-fs-read-stream-file-handle.js +test/js/node/test/parallel/test-fs-read-stream-inherit.js +test/js/node/test/parallel/test-fs-read-stream-patch-open.js +test/js/node/test/parallel/test-fs-read-stream-resume.js +test/js/node/test/parallel/test-fs-read-stream-throw-type-error.js +test/js/node/test/parallel/test-fs-read-type.js +test/js/node/test/parallel/test-fs-read-zero-length.js +test/js/node/test/parallel/test-fs-read.js +test/js/node/test/parallel/test-fs-readSync-optional-params.js +test/js/node/test/parallel/test-fs-readSync-position-validation.mjs +test/js/node/test/parallel/test-fs-readdir-buffer.js +test/js/node/test/parallel/test-fs-readdir-pipe.js +test/js/node/test/parallel/test-fs-readdir-recursive.js +test/js/node/test/parallel/test-fs-readdir-stack-overflow.js +test/js/node/test/parallel/test-fs-readdir-types-symlinks.js +test/js/node/test/parallel/test-fs-readdir-types.js +test/js/node/test/parallel/test-fs-readdir-ucs2.js +test/js/node/test/parallel/test-fs-readdir.js +test/js/node/test/parallel/test-fs-readfile-empty.js +test/js/node/test/parallel/test-fs-readfile-eof.js +test/js/node/test/parallel/test-fs-readfile-error.js +test/js/node/test/parallel/test-fs-readfile-fd.js +test/js/node/test/parallel/test-fs-readfile-flags.js +test/js/node/test/parallel/test-fs-readfile-pipe-large.js +test/js/node/test/parallel/test-fs-readfile-pipe.js +test/js/node/test/parallel/test-fs-readfile-unlink.js +test/js/node/test/parallel/test-fs-readfile-zero-byte-liar.js +test/js/node/test/parallel/test-fs-readfile.js +test/js/node/test/parallel/test-fs-readfilesync-enoent.js +test/js/node/test/parallel/test-fs-readfilesync-pipe-large.js +test/js/node/test/parallel/test-fs-readlink-type-check.js +test/js/node/test/parallel/test-fs-readv-promises.js +test/js/node/test/parallel/test-fs-readv-promisify.js +test/js/node/test/parallel/test-fs-readv-sync.js +test/js/node/test/parallel/test-fs-readv.js +test/js/node/test/parallel/test-fs-ready-event-stream.js +test/js/node/test/parallel/test-fs-realpath-buffer-encoding.js +test/js/node/test/parallel/test-fs-realpath-native.js +test/js/node/test/parallel/test-fs-realpath-on-substed-drive.js +test/js/node/test/parallel/test-fs-realpath-pipe.js +test/js/node/test/parallel/test-fs-realpath.js +test/js/node/test/parallel/test-fs-rename-type-check.js +test/js/node/test/parallel/test-fs-rmdir-recursive-sync-warns-not-found.js +test/js/node/test/parallel/test-fs-rmdir-recursive-sync-warns-on-file.js +test/js/node/test/parallel/test-fs-rmdir-recursive-throws-not-found.js +test/js/node/test/parallel/test-fs-rmdir-recursive-throws-on-file.js +test/js/node/test/parallel/test-fs-rmdir-recursive-warns-not-found.js +test/js/node/test/parallel/test-fs-rmdir-recursive-warns-on-file.js +test/js/node/test/parallel/test-fs-rmdir-recursive.js +test/js/node/test/parallel/test-fs-rmdir-type-check.js +test/js/node/test/parallel/test-fs-sir-writes-alot.js +test/js/node/test/parallel/test-fs-stat-bigint.js +test/js/node/test/parallel/test-fs-stat-date.mjs +test/js/node/test/parallel/test-fs-stat.js +test/js/node/test/parallel/test-fs-statfs.js +test/js/node/test/parallel/test-fs-stream-construct-compat-error-read.js +test/js/node/test/parallel/test-fs-stream-construct-compat-error-write.js +test/js/node/test/parallel/test-fs-stream-construct-compat-graceful-fs.js +test/js/node/test/parallel/test-fs-stream-construct-compat-old-node.js +test/js/node/test/parallel/test-fs-stream-destroy-emit-error.js +test/js/node/test/parallel/test-fs-stream-double-close.js +test/js/node/test/parallel/test-fs-stream-fs-options.js +test/js/node/test/parallel/test-fs-stream-options.js +test/js/node/test/parallel/test-fs-symlink-buffer-path.js +test/js/node/test/parallel/test-fs-symlink-dir-junction-relative.js +test/js/node/test/parallel/test-fs-symlink-dir-junction.js +test/js/node/test/parallel/test-fs-symlink-dir.js +test/js/node/test/parallel/test-fs-symlink-longpath.js +test/js/node/test/parallel/test-fs-symlink.js +test/js/node/test/parallel/test-fs-syncwritestream.js +test/js/node/test/parallel/test-fs-timestamp-parsing-error.js +test/js/node/test/parallel/test-fs-truncate-clear-file-zero.js +test/js/node/test/parallel/test-fs-truncate-fd.js +test/js/node/test/parallel/test-fs-truncate-sync.js +test/js/node/test/parallel/test-fs-truncate.js +test/js/node/test/parallel/test-fs-unlink-type-check.js +test/js/node/test/parallel/test-fs-utimes-y2K38.js +test/js/node/test/parallel/test-fs-utimes.js +test/js/node/test/parallel/test-fs-watch-abort-signal.js +test/js/node/test/parallel/test-fs-watch-close-when-destroyed.js +test/js/node/test/parallel/test-fs-watch-encoding.js +test/js/node/test/parallel/test-fs-watch-file-enoent-after-deletion.js +test/js/node/test/parallel/test-fs-watch-recursive-add-file-to-existing-subfolder.js +test/js/node/test/parallel/test-fs-watch-recursive-add-file-with-url.js +test/js/node/test/parallel/test-fs-watch-recursive-add-file.js +test/js/node/test/parallel/test-fs-watch-recursive-add-folder.js +test/js/node/test/parallel/test-fs-watch-recursive-assert-leaks.js +test/js/node/test/parallel/test-fs-watch-recursive-delete.js +test/js/node/test/parallel/test-fs-watch-recursive-linux-parallel-remove.js +test/js/node/test/parallel/test-fs-watch-recursive-sync-write.js +test/js/node/test/parallel/test-fs-watch-recursive-update-file.js +test/js/node/test/parallel/test-fs-watch-recursive-validate.js +test/js/node/test/parallel/test-fs-watch-recursive-watch-file.js +test/js/node/test/parallel/test-fs-watch-ref-unref.js +test/js/node/test/parallel/test-fs-watch-stop-async.js +test/js/node/test/parallel/test-fs-watch-stop-sync.js +test/js/node/test/parallel/test-fs-watch.js +test/js/node/test/parallel/test-fs-watchfile-ref-unref.js +test/js/node/test/parallel/test-fs-watchfile.js +test/js/node/test/parallel/test-fs-whatwg-url.js +test/js/node/test/parallel/test-fs-write-buffer-large.js +test/js/node/test/parallel/test-fs-write-buffer.js +test/js/node/test/parallel/test-fs-write-file-buffer.js +test/js/node/test/parallel/test-fs-write-file-flush.js +test/js/node/test/parallel/test-fs-write-file-invalid-path.js +test/js/node/test/parallel/test-fs-write-file-sync.js +test/js/node/test/parallel/test-fs-write-file-typedarrays.js +test/js/node/test/parallel/test-fs-write-file.js +test/js/node/test/parallel/test-fs-write-negativeoffset.js +test/js/node/test/parallel/test-fs-write-no-fd.js +test/js/node/test/parallel/test-fs-write-optional-params.js +test/js/node/test/parallel/test-fs-write-reuse-callback.js +test/js/node/test/parallel/test-fs-write-sigxfsz.js +test/js/node/test/parallel/test-fs-write-stream-autoclose-option.js +test/js/node/test/parallel/test-fs-write-stream-change-open.js +test/js/node/test/parallel/test-fs-write-stream-close-without-callback.js +test/js/node/test/parallel/test-fs-write-stream-double-close.js +test/js/node/test/parallel/test-fs-write-stream-encoding.js +test/js/node/test/parallel/test-fs-write-stream-end.js +test/js/node/test/parallel/test-fs-write-stream-err.js +test/js/node/test/parallel/test-fs-write-stream-file-handle-2.js +test/js/node/test/parallel/test-fs-write-stream-file-handle.js +test/js/node/test/parallel/test-fs-write-stream-flush.js +test/js/node/test/parallel/test-fs-write-stream-fs.js +test/js/node/test/parallel/test-fs-write-stream-patch-open.js +test/js/node/test/parallel/test-fs-write-stream-throw-type-error.js +test/js/node/test/parallel/test-fs-write-stream.js +test/js/node/test/parallel/test-fs-write-sync.js +test/js/node/test/parallel/test-fs-writefile-with-fd.js +test/js/node/test/parallel/test-fs-writestream-open-write.js +test/js/node/test/parallel/test-fs-writev-promises.js +test/js/node/test/parallel/test-fs-writev-sync.js +test/js/node/test/parallel/test-fs-writev.js +test/js/node/test/parallel/test-gc-http-client-connaborted.js +test/js/node/test/parallel/test-global-domexception.js +test/js/node/test/parallel/test-global-encoder.js +test/js/node/test/parallel/test-global-webcrypto.js +test/js/node/test/parallel/test-handle-wrap-close-abort.js +test/js/node/test/parallel/test-http-1.0-keep-alive.js +test/js/node/test/parallel/test-http-abort-before-end.js +test/js/node/test/parallel/test-http-abort-stream-end.js +test/js/node/test/parallel/test-http-aborted.js +test/js/node/test/parallel/test-http-agent-false.js +test/js/node/test/parallel/test-http-agent-getname.js +test/js/node/test/parallel/test-http-agent-keepalive-delay.js +test/js/node/test/parallel/test-http-agent-no-protocol.js +test/js/node/test/parallel/test-http-agent-null.js +test/js/node/test/parallel/test-http-agent-remove.js +test/js/node/test/parallel/test-http-agent-uninitialized-with-handle.js +test/js/node/test/parallel/test-http-agent-uninitialized.js +test/js/node/test/parallel/test-http-allow-content-length-304.js +test/js/node/test/parallel/test-http-allow-req-after-204-res.js +test/js/node/test/parallel/test-http-autoselectfamily.js +test/js/node/test/parallel/test-http-bind-twice.js +test/js/node/test/parallel/test-http-blank-header.js +test/js/node/test/parallel/test-http-buffer-sanity.js +test/js/node/test/parallel/test-http-byteswritten.js +test/js/node/test/parallel/test-http-catch-uncaughtexception.js +test/js/node/test/parallel/test-http-chunk-problem.js +test/js/node/test/parallel/test-http-chunked-smuggling.js +test/js/node/test/parallel/test-http-chunked.js +test/js/node/test/parallel/test-http-client-abort-event.js +test/js/node/test/parallel/test-http-client-abort-response-event.js +test/js/node/test/parallel/test-http-client-abort.js +test/js/node/test/parallel/test-http-client-abort2.js +test/js/node/test/parallel/test-http-client-agent-abort-close-event.js +test/js/node/test/parallel/test-http-client-check-http-token.js +test/js/node/test/parallel/test-http-client-close-with-default-agent.js +test/js/node/test/parallel/test-http-client-defaults.js +test/js/node/test/parallel/test-http-client-encoding.js +test/js/node/test/parallel/test-http-client-get-url.js +test/js/node/test/parallel/test-http-client-headers-host-array.js +test/js/node/test/parallel/test-http-client-input-function.js +test/js/node/test/parallel/test-http-client-insecure-http-parser-error.js +test/js/node/test/parallel/test-http-client-invalid-path.js +test/js/node/test/parallel/test-http-client-keep-alive-hint.js +test/js/node/test/parallel/test-http-client-keep-alive-release-before-finish.js +test/js/node/test/parallel/test-http-client-pipe-end.js +test/js/node/test/parallel/test-http-client-race-2.js +test/js/node/test/parallel/test-http-client-race.js +test/js/node/test/parallel/test-http-client-read-in-error.js +test/js/node/test/parallel/test-http-client-reject-unexpected-agent.js +test/js/node/test/parallel/test-http-client-req-error-dont-double-fire.js +test/js/node/test/parallel/test-http-client-request-options.js +test/js/node/test/parallel/test-http-client-res-destroyed.js +test/js/node/test/parallel/test-http-client-timeout-agent.js +test/js/node/test/parallel/test-http-client-timeout-connect-listener.js +test/js/node/test/parallel/test-http-client-timeout-event.js +test/js/node/test/parallel/test-http-client-timeout-option.js +test/js/node/test/parallel/test-http-client-timeout.js +test/js/node/test/parallel/test-http-client-unescaped-path.js +test/js/node/test/parallel/test-http-client-upload-buf.js +test/js/node/test/parallel/test-http-client-upload.js +test/js/node/test/parallel/test-http-client-with-create-connection.js +test/js/node/test/parallel/test-http-common.js +test/js/node/test/parallel/test-http-conn-reset.js +test/js/node/test/parallel/test-http-content-length-mismatch.js +test/js/node/test/parallel/test-http-contentLength0.js +test/js/node/test/parallel/test-http-date-header.js +test/js/node/test/parallel/test-http-decoded-auth.js +test/js/node/test/parallel/test-http-default-encoding.js +test/js/node/test/parallel/test-http-dns-error.js +test/js/node/test/parallel/test-http-double-content-length.js +test/js/node/test/parallel/test-http-dummy-characters-smuggling.js +test/js/node/test/parallel/test-http-early-hints-invalid-argument.js +test/js/node/test/parallel/test-http-end-throw-socket-handling.js +test/js/node/test/parallel/test-http-eof-on-connect.js +test/js/node/test/parallel/test-http-exceptions.js +test/js/node/test/parallel/test-http-expect-continue.js +test/js/node/test/parallel/test-http-expect-handling.js +test/js/node/test/parallel/test-http-extra-response.js +test/js/node/test/parallel/test-http-flush-headers.js +test/js/node/test/parallel/test-http-flush-response-headers.js +test/js/node/test/parallel/test-http-full-response.js +test/js/node/test/parallel/test-http-get-pipeline-problem.js +test/js/node/test/parallel/test-http-head-request.js +test/js/node/test/parallel/test-http-head-response-has-no-body-end-implicit-headers.js +test/js/node/test/parallel/test-http-head-response-has-no-body-end.js +test/js/node/test/parallel/test-http-head-response-has-no-body.js +test/js/node/test/parallel/test-http-head-throw-on-response-body-write.js +test/js/node/test/parallel/test-http-header-obstext.js +test/js/node/test/parallel/test-http-header-overflow.js +test/js/node/test/parallel/test-http-header-owstext.js +test/js/node/test/parallel/test-http-header-read.js +test/js/node/test/parallel/test-http-header-validators.js +test/js/node/test/parallel/test-http-hex-write.js +test/js/node/test/parallel/test-http-highwatermark.js +test/js/node/test/parallel/test-http-host-headers.js +test/js/node/test/parallel/test-http-hostname-typechecking.js +test/js/node/test/parallel/test-http-import-websocket.js +test/js/node/test/parallel/test-http-incoming-message-destroy.js +test/js/node/test/parallel/test-http-invalid-path-chars.js +test/js/node/test/parallel/test-http-invalid-te.js +test/js/node/test/parallel/test-http-invalid-urls.js +test/js/node/test/parallel/test-http-invalidheaderfield.js +test/js/node/test/parallel/test-http-invalidheaderfield2.js +test/js/node/test/parallel/test-http-keep-alive-drop-requests.js +test/js/node/test/parallel/test-http-keep-alive-pipeline-max-requests.js +test/js/node/test/parallel/test-http-keep-alive-timeout-custom.js +test/js/node/test/parallel/test-http-keep-alive-timeout-race-condition.js +test/js/node/test/parallel/test-http-listening.js +test/js/node/test/parallel/test-http-malformed-request.js +test/js/node/test/parallel/test-http-many-ended-pipelines.js +test/js/node/test/parallel/test-http-max-header-size.js +test/js/node/test/parallel/test-http-methods.js +test/js/node/test/parallel/test-http-missing-header-separator-cr.js +test/js/node/test/parallel/test-http-missing-header-separator-lf.js +test/js/node/test/parallel/test-http-no-content-length.js +test/js/node/test/parallel/test-http-outgoing-buffer.js +test/js/node/test/parallel/test-http-outgoing-destroy.js +test/js/node/test/parallel/test-http-outgoing-end-multiple.js +test/js/node/test/parallel/test-http-outgoing-end-types.js +test/js/node/test/parallel/test-http-outgoing-finish-writable.js +test/js/node/test/parallel/test-http-outgoing-finish.js +test/js/node/test/parallel/test-http-outgoing-finished.js +test/js/node/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js +test/js/node/test/parallel/test-http-outgoing-internal-headernames-getter.js +test/js/node/test/parallel/test-http-outgoing-internal-headernames-setter.js +test/js/node/test/parallel/test-http-outgoing-internal-headers.js +test/js/node/test/parallel/test-http-outgoing-message-write-callback.js +test/js/node/test/parallel/test-http-outgoing-proto.js +test/js/node/test/parallel/test-http-outgoing-settimeout.js +test/js/node/test/parallel/test-http-outgoing-writableFinished.js +test/js/node/test/parallel/test-http-outgoing-write-types.js +test/js/node/test/parallel/test-http-parser-bad-ref.js +test/js/node/test/parallel/test-http-parser-lazy-loaded.js +test/js/node/test/parallel/test-http-parser.js +test/js/node/test/parallel/test-http-pause-no-dump.js +test/js/node/test/parallel/test-http-pause-resume-one-end.js +test/js/node/test/parallel/test-http-pause.js +test/js/node/test/parallel/test-http-pipe-fs.js +test/js/node/test/parallel/test-http-pipeline-requests-connection-leak.js +test/js/node/test/parallel/test-http-pipeline-socket-parser-typeerror.js +test/js/node/test/parallel/test-http-proxy.js +test/js/node/test/parallel/test-http-readable-data-event.js +test/js/node/test/parallel/test-http-request-agent.js +test/js/node/test/parallel/test-http-request-arguments.js +test/js/node/test/parallel/test-http-request-end-twice.js +test/js/node/test/parallel/test-http-request-end.js +test/js/node/test/parallel/test-http-request-invalid-method-error.js +test/js/node/test/parallel/test-http-request-large-payload.js +test/js/node/test/parallel/test-http-request-method-delete-payload.js +test/js/node/test/parallel/test-http-request-methods.js +test/js/node/test/parallel/test-http-request-smuggling-content-length.js +test/js/node/test/parallel/test-http-res-write-after-end.js +test/js/node/test/parallel/test-http-res-write-end-dont-take-array.js +test/js/node/test/parallel/test-http-response-add-header-after-sent.js +test/js/node/test/parallel/test-http-response-close.js +test/js/node/test/parallel/test-http-response-cork.js +test/js/node/test/parallel/test-http-response-multi-content-length.js +test/js/node/test/parallel/test-http-response-readable.js +test/js/node/test/parallel/test-http-response-remove-header-after-sent.js +test/js/node/test/parallel/test-http-response-setheaders.js +test/js/node/test/parallel/test-http-response-splitting.js +test/js/node/test/parallel/test-http-response-status-message.js +test/js/node/test/parallel/test-http-response-statuscode.js +test/js/node/test/parallel/test-http-response-writehead-returns-this.js +test/js/node/test/parallel/test-http-server-async-dispose.js +test/js/node/test/parallel/test-http-server-capture-rejections.js +test/js/node/test/parallel/test-http-server-close-all.js +test/js/node/test/parallel/test-http-server-close-destroy-timeout.js +test/js/node/test/parallel/test-http-server-close-idle-wait-response.js +test/js/node/test/parallel/test-http-server-connections-checking-leak.js +test/js/node/test/parallel/test-http-server-de-chunked-trailer.js +test/js/node/test/parallel/test-http-server-delete-parser.js +test/js/node/test/parallel/test-http-server-destroy-socket-on-client-error.js +test/js/node/test/parallel/test-http-server-keep-alive-defaults.js +test/js/node/test/parallel/test-http-server-keep-alive-max-requests-null.js +test/js/node/test/parallel/test-http-server-method.query.js +test/js/node/test/parallel/test-http-server-multiheaders.js +test/js/node/test/parallel/test-http-server-non-utf8-header.js +test/js/node/test/parallel/test-http-server-options-incoming-message.js +test/js/node/test/parallel/test-http-server-options-server-response.js +test/js/node/test/parallel/test-http-server-reject-chunked-with-content-length.js +test/js/node/test/parallel/test-http-server-stale-close.js +test/js/node/test/parallel/test-http-server-timeouts-validation.js +test/js/node/test/parallel/test-http-server-write-after-end.js +test/js/node/test/parallel/test-http-server-write-end-after-end.js +test/js/node/test/parallel/test-http-set-cookies.js +test/js/node/test/parallel/test-http-set-header-chain.js +test/js/node/test/parallel/test-http-set-max-idle-http-parser.js +test/js/node/test/parallel/test-http-socket-error-listeners.js +test/js/node/test/parallel/test-http-status-code.js +test/js/node/test/parallel/test-http-status-message.js +test/js/node/test/parallel/test-http-status-reason-invalid-chars.js +test/js/node/test/parallel/test-http-timeout-client-warning.js +test/js/node/test/parallel/test-http-timeout-overflow.js +test/js/node/test/parallel/test-http-timeout.js +test/js/node/test/parallel/test-http-uncaught-from-request-callback.js +test/js/node/test/parallel/test-http-upgrade-reconsume-stream.js +test/js/node/test/parallel/test-http-url.parse-auth-with-header-in-request.js +test/js/node/test/parallel/test-http-url.parse-auth.js +test/js/node/test/parallel/test-http-url.parse-basic.js +test/js/node/test/parallel/test-http-url.parse-only-support-http-https-protocol.js +test/js/node/test/parallel/test-http-url.parse-path.js +test/js/node/test/parallel/test-http-url.parse-post.js +test/js/node/test/parallel/test-http-url.parse-search.js +test/js/node/test/parallel/test-http-wget.js +test/js/node/test/parallel/test-http-write-callbacks.js +test/js/node/test/parallel/test-http-write-empty-string.js +test/js/node/test/parallel/test-http-write-head-2.js +test/js/node/test/parallel/test-http-write-head.js +test/js/node/test/parallel/test-http-zero-length-write.js +test/js/node/test/parallel/test-http-zerolengthbuffer.js +test/js/node/test/parallel/test-http2-altsvc.js +test/js/node/test/parallel/test-http2-cancel-while-client-reading.js +test/js/node/test/parallel/test-http2-clean-output.js +test/js/node/test/parallel/test-http2-client-port-80.js +test/js/node/test/parallel/test-http2-client-priority-before-connect.js +test/js/node/test/parallel/test-http2-client-request-listeners-warning.js +test/js/node/test/parallel/test-http2-client-request-options-errors.js +test/js/node/test/parallel/test-http2-client-rststream-before-connect.js +test/js/node/test/parallel/test-http2-client-setLocalWindowSize.js +test/js/node/test/parallel/test-http2-client-setNextStreamID-errors.js +test/js/node/test/parallel/test-http2-client-shutdown-before-connect.js +test/js/node/test/parallel/test-http2-client-stream-destroy-before-connect.js +test/js/node/test/parallel/test-http2-client-upload-reject.js +test/js/node/test/parallel/test-http2-client-upload.js +test/js/node/test/parallel/test-http2-client-write-before-connect.js +test/js/node/test/parallel/test-http2-client-write-empty-string.js +test/js/node/test/parallel/test-http2-close-while-writing.js +test/js/node/test/parallel/test-http2-compat-aborted.js +test/js/node/test/parallel/test-http2-compat-client-upload-reject.js +test/js/node/test/parallel/test-http2-compat-errors.js +test/js/node/test/parallel/test-http2-compat-expect-continue-check.js +test/js/node/test/parallel/test-http2-compat-expect-continue.js +test/js/node/test/parallel/test-http2-compat-expect-handling.js +test/js/node/test/parallel/test-http2-compat-method-connect.js +test/js/node/test/parallel/test-http2-compat-serverrequest-end.js +test/js/node/test/parallel/test-http2-compat-serverrequest-headers.js +test/js/node/test/parallel/test-http2-compat-serverrequest-host.js +test/js/node/test/parallel/test-http2-compat-serverrequest-pause.js +test/js/node/test/parallel/test-http2-compat-serverrequest-pipe.js +test/js/node/test/parallel/test-http2-compat-serverrequest-settimeout.js +test/js/node/test/parallel/test-http2-compat-serverrequest-trailers.js +test/js/node/test/parallel/test-http2-compat-serverrequest.js +test/js/node/test/parallel/test-http2-compat-serverresponse-close.js +test/js/node/test/parallel/test-http2-compat-serverresponse-destroy.js +test/js/node/test/parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js +test/js/node/test/parallel/test-http2-compat-serverresponse-end.js +test/js/node/test/parallel/test-http2-compat-serverresponse-finished.js +test/js/node/test/parallel/test-http2-compat-serverresponse-flushheaders.js +test/js/node/test/parallel/test-http2-compat-serverresponse-headers-after-destroy.js +test/js/node/test/parallel/test-http2-compat-serverresponse-headers-send-date.js +test/js/node/test/parallel/test-http2-compat-serverresponse-headers.js +test/js/node/test/parallel/test-http2-compat-serverresponse-settimeout.js +test/js/node/test/parallel/test-http2-compat-serverresponse-statuscode.js +test/js/node/test/parallel/test-http2-compat-serverresponse-statusmessage-property-set.js +test/js/node/test/parallel/test-http2-compat-serverresponse-statusmessage-property.js +test/js/node/test/parallel/test-http2-compat-serverresponse-statusmessage.js +test/js/node/test/parallel/test-http2-compat-serverresponse-trailers.js +test/js/node/test/parallel/test-http2-compat-serverresponse-write.js +test/js/node/test/parallel/test-http2-compat-serverresponse-writehead-array.js +test/js/node/test/parallel/test-http2-compat-serverresponse-writehead.js +test/js/node/test/parallel/test-http2-compat-serverresponse.js +test/js/node/test/parallel/test-http2-compat-socket-destroy-delayed.js +test/js/node/test/parallel/test-http2-compat-write-early-hints-invalid-argument-type.js +test/js/node/test/parallel/test-http2-compat-write-early-hints-invalid-argument-value.js +test/js/node/test/parallel/test-http2-compat-write-early-hints.js +test/js/node/test/parallel/test-http2-compat-write-head-after-close.js +test/js/node/test/parallel/test-http2-compat-write-head-destroyed.js +test/js/node/test/parallel/test-http2-connect-options.js +test/js/node/test/parallel/test-http2-connect-tls-with-delay.js +test/js/node/test/parallel/test-http2-connect.js +test/js/node/test/parallel/test-http2-cookies.js +test/js/node/test/parallel/test-http2-create-client-connect.js +test/js/node/test/parallel/test-http2-create-client-session.js +test/js/node/test/parallel/test-http2-createsecureserver-options.js +test/js/node/test/parallel/test-http2-createserver-options.js +test/js/node/test/parallel/test-http2-createwritereq.js +test/js/node/test/parallel/test-http2-date-header.js +test/js/node/test/parallel/test-http2-destroy-after-write.js +test/js/node/test/parallel/test-http2-dont-override.js +test/js/node/test/parallel/test-http2-endafterheaders.js +test/js/node/test/parallel/test-http2-error-order.js +test/js/node/test/parallel/test-http2-forget-closed-streams.js +test/js/node/test/parallel/test-http2-goaway-opaquedata.js +test/js/node/test/parallel/test-http2-graceful-close.js +test/js/node/test/parallel/test-http2-head-request.js +test/js/node/test/parallel/test-http2-info-headers.js +test/js/node/test/parallel/test-http2-invalidargtypes-errors.js +test/js/node/test/parallel/test-http2-invalidheaderfield.js +test/js/node/test/parallel/test-http2-invalidheaderfields-client.js +test/js/node/test/parallel/test-http2-large-write-close.js +test/js/node/test/parallel/test-http2-large-write-destroy.js +test/js/node/test/parallel/test-http2-large-write-multiple-requests.js +test/js/node/test/parallel/test-http2-large-writes-session-memory-leak.js +test/js/node/test/parallel/test-http2-malformed-altsvc.js +test/js/node/test/parallel/test-http2-many-writes-and-destroy.js +test/js/node/test/parallel/test-http2-max-session-memory-leak.js +test/js/node/test/parallel/test-http2-methods.js +test/js/node/test/parallel/test-http2-misbehaving-flow-control-paused.js +test/js/node/test/parallel/test-http2-misbehaving-flow-control.js +test/js/node/test/parallel/test-http2-misused-pseudoheaders.js +test/js/node/test/parallel/test-http2-multiheaders-raw.js +test/js/node/test/parallel/test-http2-multiheaders.js +test/js/node/test/parallel/test-http2-multiplex.js +test/js/node/test/parallel/test-http2-multistream-destroy-on-read-tls.js +test/js/node/test/parallel/test-http2-no-more-streams.js +test/js/node/test/parallel/test-http2-no-wanttrailers-listener.js +test/js/node/test/parallel/test-http2-options-max-headers-block-length.js +test/js/node/test/parallel/test-http2-options-server-request.js +test/js/node/test/parallel/test-http2-options-server-response.js +test/js/node/test/parallel/test-http2-origin.js +test/js/node/test/parallel/test-http2-pipe-named-pipe.js +test/js/node/test/parallel/test-http2-pipe.js +test/js/node/test/parallel/test-http2-premature-close.js +test/js/node/test/parallel/test-http2-priority-cycle-.js +test/js/node/test/parallel/test-http2-removed-header-stays-removed.js +test/js/node/test/parallel/test-http2-request-remove-connect-listener.js +test/js/node/test/parallel/test-http2-request-response-proto.js +test/js/node/test/parallel/test-http2-res-corked.js +test/js/node/test/parallel/test-http2-respond-errors.js +test/js/node/test/parallel/test-http2-respond-file-204.js +test/js/node/test/parallel/test-http2-respond-file-304.js +test/js/node/test/parallel/test-http2-respond-file-404.js +test/js/node/test/parallel/test-http2-respond-file-compat.js +test/js/node/test/parallel/test-http2-respond-file-error-dir.js +test/js/node/test/parallel/test-http2-respond-file-error-pipe-offset.js +test/js/node/test/parallel/test-http2-respond-file-errors.js +test/js/node/test/parallel/test-http2-respond-file-fd-errors.js +test/js/node/test/parallel/test-http2-respond-file-fd-invalid.js +test/js/node/test/parallel/test-http2-respond-file-fd-range.js +test/js/node/test/parallel/test-http2-respond-file-fd.js +test/js/node/test/parallel/test-http2-respond-file-filehandle.js +test/js/node/test/parallel/test-http2-respond-file-range.js +test/js/node/test/parallel/test-http2-respond-file.js +test/js/node/test/parallel/test-http2-respond-no-data.js +test/js/node/test/parallel/test-http2-respond-with-file-connection-abort.js +test/js/node/test/parallel/test-http2-sent-headers.js +test/js/node/test/parallel/test-http2-serve-file.js +test/js/node/test/parallel/test-http2-server-async-dispose.js +test/js/node/test/parallel/test-http2-server-close-callback.js +test/js/node/test/parallel/test-http2-server-close-idle-connection.js +test/js/node/test/parallel/test-http2-server-errors.js +test/js/node/test/parallel/test-http2-server-rst-before-respond.js +test/js/node/test/parallel/test-http2-server-session-destroy.js +test/js/node/test/parallel/test-http2-server-set-header.js +test/js/node/test/parallel/test-http2-server-setLocalWindowSize.js +test/js/node/test/parallel/test-http2-server-shutdown-options-errors.js +test/js/node/test/parallel/test-http2-session-gc-while-write-scheduled.js +test/js/node/test/parallel/test-http2-session-stream-state.js +test/js/node/test/parallel/test-http2-session-timeout.js +test/js/node/test/parallel/test-http2-single-headers.js +test/js/node/test/parallel/test-http2-socket-proxy-handler-for-has.js +test/js/node/test/parallel/test-http2-status-code.js +test/js/node/test/parallel/test-http2-stream-destroy-event-order.js +test/js/node/test/parallel/test-http2-timeouts.js +test/js/node/test/parallel/test-http2-tls-disconnect.js +test/js/node/test/parallel/test-http2-too-many-headers.js +test/js/node/test/parallel/test-http2-trailers-after-session-close.js +test/js/node/test/parallel/test-http2-trailers.js +test/js/node/test/parallel/test-http2-unbound-socket-proxy.js +test/js/node/test/parallel/test-http2-write-callbacks.js +test/js/node/test/parallel/test-http2-write-empty-string.js +test/js/node/test/parallel/test-http2-zero-length-header.js +test/js/node/test/parallel/test-http2-zero-length-write.js +test/js/node/test/parallel/test-https-agent-constructor.js +test/js/node/test/parallel/test-https-agent-session-eviction.js +test/js/node/test/parallel/test-https-agent.js +test/js/node/test/parallel/test-https-byteswritten.js +test/js/node/test/parallel/test-https-client-get-url.js +test/js/node/test/parallel/test-https-client-renegotiation-limit.js +test/js/node/test/parallel/test-https-close.js +test/js/node/test/parallel/test-https-connecting-to-http.js +test/js/node/test/parallel/test-https-eof-for-eom.js +test/js/node/test/parallel/test-https-foafssl.js +test/js/node/test/parallel/test-https-localaddress-bind-error.js +test/js/node/test/parallel/test-https-options-boolean-check.js +test/js/node/test/parallel/test-https-selfsigned-no-keycertsign-no-crash.js +test/js/node/test/parallel/test-https-server-async-dispose.js +test/js/node/test/parallel/test-https-server-close-destroy-timeout.js +test/js/node/test/parallel/test-https-server-connections-checking-leak.js +test/js/node/test/parallel/test-https-server-headers-timeout.js +test/js/node/test/parallel/test-https-server-request-timeout.js +test/js/node/test/parallel/test-https-simple.js +test/js/node/test/parallel/test-https-socket-options.js +test/js/node/test/parallel/test-https-truncate.js +test/js/node/test/parallel/test-https-unix-socket-self-signed.js +test/js/node/test/parallel/test-icu-env.js +test/js/node/test/parallel/test-icu-punycode.js +test/js/node/test/parallel/test-icu-transcode.js +test/js/node/test/parallel/test-inspect-support-for-node_options.js +test/js/node/test/parallel/test-inspector-enabled.js +test/js/node/test/parallel/test-inspector-has-inspector-false.js +test/js/node/test/parallel/test-inspector-stops-no-file.js +test/js/node/test/parallel/test-inspector-workers-flat-list.js +test/js/node/test/parallel/test-instanceof.js +test/js/node/test/parallel/test-internal-module-require.js +test/js/node/test/parallel/test-internal-process-binding.js +test/js/node/test/parallel/test-intl-v8BreakIterator.js +test/js/node/test/parallel/test-intl.js +test/js/node/test/parallel/test-kill-segfault-freebsd.js +test/js/node/test/parallel/test-listen-fd-detached-inherit.js +test/js/node/test/parallel/test-listen-fd-detached.js +test/js/node/test/parallel/test-math-random.js +test/js/node/test/parallel/test-memory-usage-emfile.js +test/js/node/test/parallel/test-memory-usage.js +test/js/node/test/parallel/test-messagechannel.js +test/js/node/test/parallel/test-messageevent-brandcheck.js +test/js/node/test/parallel/test-microtask-queue-integration.js +test/js/node/test/parallel/test-microtask-queue-run-immediate.js +test/js/node/test/parallel/test-microtask-queue-run.js +test/js/node/test/parallel/test-mime-api.js +test/js/node/test/parallel/test-mime-whatwg.js +test/js/node/test/parallel/test-module-builtin.js +test/js/node/test/parallel/test-module-cache.js +test/js/node/test/parallel/test-module-children.js +test/js/node/test/parallel/test-module-circular-dependency-warning.js +test/js/node/test/parallel/test-module-circular-symlinks.js +test/js/node/test/parallel/test-module-create-require.js +test/js/node/test/parallel/test-module-globalpaths-nodepath.js +test/js/node/test/parallel/test-module-isBuiltin.js +test/js/node/test/parallel/test-module-loading-deprecated.js +test/js/node/test/parallel/test-module-loading-error.js +test/js/node/test/parallel/test-module-main-extension-lookup.js +test/js/node/test/parallel/test-module-main-fail.js +test/js/node/test/parallel/test-module-main-preserve-symlinks-fail.js +test/js/node/test/parallel/test-module-multi-extensions.js +test/js/node/test/parallel/test-module-nodemodulepaths.js +test/js/node/test/parallel/test-module-parent-deprecation.js +test/js/node/test/parallel/test-module-parent-setter-deprecation.js +test/js/node/test/parallel/test-module-prototype-mutation.js +test/js/node/test/parallel/test-module-readonly.js +test/js/node/test/parallel/test-module-relative-lookup.js +test/js/node/test/parallel/test-module-run-main-monkey-patch.js +test/js/node/test/parallel/test-module-stat.js +test/js/node/test/parallel/test-module-symlinked-peer-modules.js +test/js/node/test/parallel/test-module-version.js +test/js/node/test/parallel/test-module-wrap.js +test/js/node/test/parallel/test-module-wrapper.js +test/js/node/test/parallel/test-net-access-byteswritten.js +test/js/node/test/parallel/test-net-after-close.js +test/js/node/test/parallel/test-net-autoselectfamily-attempt-timeout-default-value.js +test/js/node/test/parallel/test-net-autoselectfamily-default.js +test/js/node/test/parallel/test-net-autoselectfamily-ipv4first.js +test/js/node/test/parallel/test-net-better-error-messages-listen-path.js +test/js/node/test/parallel/test-net-better-error-messages-listen.js +test/js/node/test/parallel/test-net-better-error-messages-path.js +test/js/node/test/parallel/test-net-better-error-messages-port-hostname.js +test/js/node/test/parallel/test-net-bind-twice.js +test/js/node/test/parallel/test-net-blocklist.js +test/js/node/test/parallel/test-net-buffersize.js +test/js/node/test/parallel/test-net-bytes-written-large.js +test/js/node/test/parallel/test-net-can-reset-timeout.js +test/js/node/test/parallel/test-net-child-process-connect-reset.js +test/js/node/test/parallel/test-net-connect-abort-controller.js +test/js/node/test/parallel/test-net-connect-after-destroy.js +test/js/node/test/parallel/test-net-connect-buffer.js +test/js/node/test/parallel/test-net-connect-buffer2.js +test/js/node/test/parallel/test-net-connect-call-socket-connect.js +test/js/node/test/parallel/test-net-connect-custom-lookup-non-string-address.mjs +test/js/node/test/parallel/test-net-connect-destroy.js +test/js/node/test/parallel/test-net-connect-immediate-destroy.js +test/js/node/test/parallel/test-net-connect-immediate-finish.js +test/js/node/test/parallel/test-net-connect-keepalive.js +test/js/node/test/parallel/test-net-connect-no-arg.js +test/js/node/test/parallel/test-net-connect-nodelay.js +test/js/node/test/parallel/test-net-connect-options-invalid.js +test/js/node/test/parallel/test-net-connect-options-ipv6.js +test/js/node/test/parallel/test-net-connect-options-path.js +test/js/node/test/parallel/test-net-connect-options-port.js +test/js/node/test/parallel/test-net-connect-reset-before-connected.js +test/js/node/test/parallel/test-net-connect-reset.js +test/js/node/test/parallel/test-net-deprecated-setsimultaneousaccepts.js +test/js/node/test/parallel/test-net-dns-custom-lookup.js +test/js/node/test/parallel/test-net-dns-error.js +test/js/node/test/parallel/test-net-dns-lookup-skip.js +test/js/node/test/parallel/test-net-dns-lookup.js +test/js/node/test/parallel/test-net-during-close.js +test/js/node/test/parallel/test-net-eaddrinuse.js +test/js/node/test/parallel/test-net-end-without-connect.js +test/js/node/test/parallel/test-net-isip.js +test/js/node/test/parallel/test-net-isipv4.js +test/js/node/test/parallel/test-net-isipv6.js +test/js/node/test/parallel/test-net-keepalive.js +test/js/node/test/parallel/test-net-listen-after-destroying-stdin.js +test/js/node/test/parallel/test-net-listen-close-server-callback-is-not-function.js +test/js/node/test/parallel/test-net-listen-close-server.js +test/js/node/test/parallel/test-net-listen-error.js +test/js/node/test/parallel/test-net-listen-exclusive-random-ports.js +test/js/node/test/parallel/test-net-listen-fd0.js +test/js/node/test/parallel/test-net-listen-handle-in-cluster-1.js +test/js/node/test/parallel/test-net-listen-invalid-port.js +test/js/node/test/parallel/test-net-listen-ipv6only.js +test/js/node/test/parallel/test-net-listening.js +test/js/node/test/parallel/test-net-local-address-port.js +test/js/node/test/parallel/test-net-localerror.js +test/js/node/test/parallel/test-net-options-lookup.js +test/js/node/test/parallel/test-net-persistent-keepalive.js +test/js/node/test/parallel/test-net-pipe-connect-errors.js +test/js/node/test/parallel/test-net-pipe-with-long-path.js +test/js/node/test/parallel/test-net-reconnect.js +test/js/node/test/parallel/test-net-remote-address-port.js +test/js/node/test/parallel/test-net-remote-address.js +test/js/node/test/parallel/test-net-reuseport.js +test/js/node/test/parallel/test-net-server-async-dispose.mjs +test/js/node/test/parallel/test-net-server-blocklist.js +test/js/node/test/parallel/test-net-server-call-listen-multiple-times.js +test/js/node/test/parallel/test-net-server-capture-rejection.js +test/js/node/test/parallel/test-net-server-close-before-calling-lookup-callback.js +test/js/node/test/parallel/test-net-server-close-before-ipc-response.js +test/js/node/test/parallel/test-net-server-close.js +test/js/node/test/parallel/test-net-server-drop-connections.js +test/js/node/test/parallel/test-net-server-listen-options-signal.js +test/js/node/test/parallel/test-net-server-listen-remove-callback.js +test/js/node/test/parallel/test-net-server-max-connections-close-makes-more-available.js +test/js/node/test/parallel/test-net-server-max-connections.js +test/js/node/test/parallel/test-net-server-options.js +test/js/node/test/parallel/test-net-server-pause-on-connect.js +test/js/node/test/parallel/test-net-server-simultaneous-accepts-produce-warning-once.js +test/js/node/test/parallel/test-net-server-try-ports.js +test/js/node/test/parallel/test-net-server-unref-persistent.js +test/js/node/test/parallel/test-net-server-unref.js +test/js/node/test/parallel/test-net-settimeout.js +test/js/node/test/parallel/test-net-socket-byteswritten.js +test/js/node/test/parallel/test-net-socket-close-after-end.js +test/js/node/test/parallel/test-net-socket-connect-invalid-autoselectfamily.js +test/js/node/test/parallel/test-net-socket-connect-invalid-autoselectfamilyattempttimeout.js +test/js/node/test/parallel/test-net-socket-connect-without-cb.js +test/js/node/test/parallel/test-net-socket-connecting.js +test/js/node/test/parallel/test-net-socket-constructor.js +test/js/node/test/parallel/test-net-socket-destroy-send.js +test/js/node/test/parallel/test-net-socket-destroy-twice.js +test/js/node/test/parallel/test-net-socket-end-before-connect.js +test/js/node/test/parallel/test-net-socket-end-callback.js +test/js/node/test/parallel/test-net-socket-local-address.js +test/js/node/test/parallel/test-net-socket-no-halfopen-enforcer.js +test/js/node/test/parallel/test-net-socket-ready-without-cb.js +test/js/node/test/parallel/test-net-socket-reset-twice.js +test/js/node/test/parallel/test-net-socket-timeout-unref.js +test/js/node/test/parallel/test-net-socket-timeout.js +test/js/node/test/parallel/test-net-socket-write-after-close.js +test/js/node/test/parallel/test-net-socket-write-error.js +test/js/node/test/parallel/test-net-stream.js +test/js/node/test/parallel/test-net-sync-cork.js +test/js/node/test/parallel/test-net-throttle.js +test/js/node/test/parallel/test-net-timeout-no-handle.js +test/js/node/test/parallel/test-net-writable.js +test/js/node/test/parallel/test-net-write-arguments.js +test/js/node/test/parallel/test-net-write-cb-on-destroy-before-connect.js +test/js/node/test/parallel/test-net-write-connect-write.js +test/js/node/test/parallel/test-net-write-fully-async-buffer.js +test/js/node/test/parallel/test-net-write-fully-async-hex-string.js +test/js/node/test/parallel/test-net-write-slow.js +test/js/node/test/parallel/test-next-tick-doesnt-hang.js +test/js/node/test/parallel/test-next-tick-domain.js +test/js/node/test/parallel/test-next-tick-errors.js +test/js/node/test/parallel/test-next-tick-fixed-queue-regression.js +test/js/node/test/parallel/test-next-tick-intentional-starvation.js +test/js/node/test/parallel/test-next-tick-ordering.js +test/js/node/test/parallel/test-next-tick-ordering2.js +test/js/node/test/parallel/test-next-tick-when-exiting.js +test/js/node/test/parallel/test-next-tick.js +test/js/node/test/parallel/test-no-addons-resolution-condition.js +test/js/node/test/parallel/test-no-node-snapshot.js +test/js/node/test/parallel/test-os-eol.js +test/js/node/test/parallel/test-os-homedir-no-envvar.js +test/js/node/test/parallel/test-os-process-priority.js +test/js/node/test/parallel/test-os-userinfo-handles-getter-errors.js +test/js/node/test/parallel/test-os.js +test/js/node/test/parallel/test-outgoing-message-destroy.js +test/js/node/test/parallel/test-outgoing-message-pipe.js +test/js/node/test/parallel/test-parse-args.mjs +test/js/node/test/parallel/test-path-basename.js +test/js/node/test/parallel/test-path-dirname.js +test/js/node/test/parallel/test-path-extname.js +test/js/node/test/parallel/test-path-glob.js +test/js/node/test/parallel/test-path-isabsolute.js +test/js/node/test/parallel/test-path-join.js +test/js/node/test/parallel/test-path-makelong.js +test/js/node/test/parallel/test-path-normalize.js +test/js/node/test/parallel/test-path-parse-format.js +test/js/node/test/parallel/test-path-posix-exists.js +test/js/node/test/parallel/test-path-posix-relative-on-windows.js +test/js/node/test/parallel/test-path-relative.js +test/js/node/test/parallel/test-path-resolve.js +test/js/node/test/parallel/test-path-win32-exists.js +test/js/node/test/parallel/test-path-zero-length-strings.js +test/js/node/test/parallel/test-path.js +test/js/node/test/parallel/test-perf-gc-crash.js +test/js/node/test/parallel/test-performance-measure.js +test/js/node/test/parallel/test-performanceobserver-gc.js +test/js/node/test/parallel/test-permission-fs-supported.js +test/js/node/test/parallel/test-pipe-abstract-socket-http.js +test/js/node/test/parallel/test-pipe-address.js +test/js/node/test/parallel/test-pipe-file-to-http.js +test/js/node/test/parallel/test-pipe-head.js +test/js/node/test/parallel/test-pipe-outgoing-message-data-emitted-after-ended.js +test/js/node/test/parallel/test-pipe-return-val.js +test/js/node/test/parallel/test-pipe-writev.js +test/js/node/test/parallel/test-preload-print-process-argv.js +test/js/node/test/parallel/test-preload-self-referential.js +test/js/node/test/parallel/test-primitive-timer-leak.js +test/js/node/test/parallel/test-process-abort.js +test/js/node/test/parallel/test-process-argv-0.js +test/js/node/test/parallel/test-process-assert.js +test/js/node/test/parallel/test-process-available-memory.js +test/js/node/test/parallel/test-process-beforeexit-throw-exit.js +test/js/node/test/parallel/test-process-beforeexit.js +test/js/node/test/parallel/test-process-binding-util.js +test/js/node/test/parallel/test-process-chdir-errormessage.js +test/js/node/test/parallel/test-process-chdir.js +test/js/node/test/parallel/test-process-config.js +test/js/node/test/parallel/test-process-constants-noatime.js +test/js/node/test/parallel/test-process-constrained-memory.js +test/js/node/test/parallel/test-process-cpuUsage.js +test/js/node/test/parallel/test-process-default.js +test/js/node/test/parallel/test-process-dlopen-error-message-crash.js +test/js/node/test/parallel/test-process-dlopen-undefined-exports.js +test/js/node/test/parallel/test-process-domain-segfault.js +test/js/node/test/parallel/test-process-emit.js +test/js/node/test/parallel/test-process-emitwarning.js +test/js/node/test/parallel/test-process-env-windows-error-reset.js +test/js/node/test/parallel/test-process-euid-egid.js +test/js/node/test/parallel/test-process-exception-capture-errors.js +test/js/node/test/parallel/test-process-exception-capture-should-abort-on-uncaught.js +test/js/node/test/parallel/test-process-exception-capture.js +test/js/node/test/parallel/test-process-execpath.js +test/js/node/test/parallel/test-process-exit-code-validation.js +test/js/node/test/parallel/test-process-exit-from-before-exit.js +test/js/node/test/parallel/test-process-exit-handler.js +test/js/node/test/parallel/test-process-exit-recursive.js +test/js/node/test/parallel/test-process-exit.js +test/js/node/test/parallel/test-process-external-stdio-close-spawn.js +test/js/node/test/parallel/test-process-external-stdio-close.js +test/js/node/test/parallel/test-process-features.js +test/js/node/test/parallel/test-process-getgroups.js +test/js/node/test/parallel/test-process-hrtime-bigint.js +test/js/node/test/parallel/test-process-hrtime.js +test/js/node/test/parallel/test-process-kill-null.js +test/js/node/test/parallel/test-process-kill-pid.js +test/js/node/test/parallel/test-process-next-tick.js +test/js/node/test/parallel/test-process-no-deprecation.js +test/js/node/test/parallel/test-process-ppid.js +test/js/node/test/parallel/test-process-really-exit.js +test/js/node/test/parallel/test-process-ref-unref.js +test/js/node/test/parallel/test-process-release.js +test/js/node/test/parallel/test-process-remove-all-signal-listeners.js +test/js/node/test/parallel/test-process-setgroups.js +test/js/node/test/parallel/test-process-setsourcemapsenabled.js +test/js/node/test/parallel/test-process-title-cli.js +test/js/node/test/parallel/test-process-uid-gid.js +test/js/node/test/parallel/test-process-umask-mask.js +test/js/node/test/parallel/test-process-umask.js +test/js/node/test/parallel/test-process-uptime.js +test/js/node/test/parallel/test-process-warning.js +test/js/node/test/parallel/test-promise-handled-rejection-no-warning.js +test/js/node/test/parallel/test-promise-unhandled-default.js +test/js/node/test/parallel/test-promise-unhandled-error.js +test/js/node/test/parallel/test-promise-unhandled-flag.js +test/js/node/test/parallel/test-promise-unhandled-issue-43655.js +test/js/node/test/parallel/test-promise-unhandled-silent-no-hook.js +test/js/node/test/parallel/test-promise-unhandled-silent.js +test/js/node/test/parallel/test-promise-unhandled-throw-handler.js +test/js/node/test/parallel/test-promise-unhandled-throw.js +test/js/node/test/parallel/test-promise-unhandled-warn-no-hook.js +test/js/node/test/parallel/test-promises-unhandled-proxy-rejections.js +test/js/node/test/parallel/test-promises-unhandled-rejections.js +test/js/node/test/parallel/test-promises-unhandled-symbol-rejections.js +test/js/node/test/parallel/test-promises-warning-on-unhandled-rejection.js +test/js/node/test/parallel/test-punycode.js +test/js/node/test/parallel/test-querystring-escape.js +test/js/node/test/parallel/test-querystring-maxKeys-non-finite.js +test/js/node/test/parallel/test-querystring-multichar-separator.js +test/js/node/test/parallel/test-querystring.js +test/js/node/test/parallel/test-queue-microtask.js +test/js/node/test/parallel/test-quic-internal-endpoint-listen-defaults.js +test/js/node/test/parallel/test-quic-internal-endpoint-options.js +test/js/node/test/parallel/test-quic-internal-endpoint-stats-state.js +test/js/node/test/parallel/test-quic-internal-setcallbacks.js +test/js/node/test/parallel/test-readable-from-iterator-closing.js +test/js/node/test/parallel/test-readable-from-web-enqueue-then-close.js +test/js/node/test/parallel/test-readable-from.js +test/js/node/test/parallel/test-readable-large-hwm.js +test/js/node/test/parallel/test-readable-single-end.js +test/js/node/test/parallel/test-readline-async-iterators-backpressure.js +test/js/node/test/parallel/test-readline-async-iterators-destroy.js +test/js/node/test/parallel/test-readline-async-iterators.js +test/js/node/test/parallel/test-readline-carriage-return-between-chunks.js +test/js/node/test/parallel/test-readline-csi.js +test/js/node/test/parallel/test-readline-emit-keypress-events.js +test/js/node/test/parallel/test-readline-input-onerror.js +test/js/node/test/parallel/test-readline-interface-escapecodetimeout.js +test/js/node/test/parallel/test-readline-interface-no-trailing-newline.js +test/js/node/test/parallel/test-readline-interface-recursive-writes.js +test/js/node/test/parallel/test-readline-keys.js +test/js/node/test/parallel/test-readline-position.js +test/js/node/test/parallel/test-readline-promises-csi.mjs +test/js/node/test/parallel/test-readline-promises-tab-complete.js +test/js/node/test/parallel/test-readline-reopen.js +test/js/node/test/parallel/test-readline-set-raw-mode.js +test/js/node/test/parallel/test-readline-tab-complete.js +test/js/node/test/parallel/test-readline-undefined-columns.js +test/js/node/test/parallel/test-readline.js +test/js/node/test/parallel/test-ref-unref-return.js +test/js/node/test/parallel/test-regression-object-prototype.js +test/js/node/test/parallel/test-repl-clear-immediate-crash.js +test/js/node/test/parallel/test-repl-close.js +test/js/node/test/parallel/test-repl-dynamic-import.js +test/js/node/test/parallel/test-repl-preview-without-inspector.js +test/js/node/test/parallel/test-repl-syntax-error-handling.js +test/js/node/test/parallel/test-require-cache.js +test/js/node/test/parallel/test-require-delete-array-iterator.js +test/js/node/test/parallel/test-require-dot.js +test/js/node/test/parallel/test-require-empty-main.js +test/js/node/test/parallel/test-require-enoent-dir.js +test/js/node/test/parallel/test-require-exceptions.js +test/js/node/test/parallel/test-require-extension-over-directory.js +test/js/node/test/parallel/test-require-extensions-main.js +test/js/node/test/parallel/test-require-extensions-same-filename-as-dir-trailing-slash.js +test/js/node/test/parallel/test-require-invalid-main-no-exports.js +test/js/node/test/parallel/test-require-invalid-package.js +test/js/node/test/parallel/test-require-json.js +test/js/node/test/parallel/test-require-long-path.js +test/js/node/test/parallel/test-require-node-prefix.js +test/js/node/test/parallel/test-require-nul.js +test/js/node/test/parallel/test-require-process.js +test/js/node/test/parallel/test-require-resolve.js +test/js/node/test/parallel/test-require-symlink.js +test/js/node/test/parallel/test-require-unicode.js +test/js/node/test/parallel/test-resource-usage.js +test/js/node/test/parallel/test-runner-aliases.js +test/js/node/test/parallel/test-runner-assert.js +test/js/node/test/parallel/test-runner-filter-warning.js +test/js/node/test/parallel/test-runner-root-after-with-refed-handles.js +test/js/node/test/parallel/test-runner-source-maps-invalid-json.js +test/js/node/test/parallel/test-runner-subtest-after-hook.js +test/js/node/test/parallel/test-runner-typechecking.js +test/js/node/test/parallel/test-set-http-max-http-headers.js +test/js/node/test/parallel/test-set-process-debug-port.js +test/js/node/test/parallel/test-shadow-realm-gc-module.js +test/js/node/test/parallel/test-shadow-realm-module.js +test/js/node/test/parallel/test-shadow-realm-preload-module.js +test/js/node/test/parallel/test-shadow-realm-prepare-stack-trace.js +test/js/node/test/parallel/test-shadow-realm.js +test/js/node/test/parallel/test-sigint-infinite-loop.js +test/js/node/test/parallel/test-signal-args.js +test/js/node/test/parallel/test-signal-handler-remove-on-exit.js +test/js/node/test/parallel/test-signal-handler.js +test/js/node/test/parallel/test-signal-unregister.js +test/js/node/test/parallel/test-socket-address.js +test/js/node/test/parallel/test-socket-options-invalid.js +test/js/node/test/parallel/test-socket-write-after-fin-error.js +test/js/node/test/parallel/test-socketaddress.js +test/js/node/test/parallel/test-spawn-cmd-named-pipe.js +test/js/node/test/parallel/test-stdin-child-proc.js +test/js/node/test/parallel/test-stdin-from-file-spawn.js +test/js/node/test/parallel/test-stdin-from-file.js +test/js/node/test/parallel/test-stdin-hang.js +test/js/node/test/parallel/test-stdin-pause-resume-sync.js +test/js/node/test/parallel/test-stdin-pause-resume.js +test/js/node/test/parallel/test-stdin-pipe-large.js +test/js/node/test/parallel/test-stdin-pipe-resume.js +test/js/node/test/parallel/test-stdin-resume-pause.js +test/js/node/test/parallel/test-stdin-script-child-option.js +test/js/node/test/parallel/test-stdin-script-child.js +test/js/node/test/parallel/test-stdio-closed.js +test/js/node/test/parallel/test-stdio-pipe-access.js +test/js/node/test/parallel/test-stdio-pipe-stderr.js +test/js/node/test/parallel/test-stdio-undestroy.js +test/js/node/test/parallel/test-stdout-cannot-be-closed-child-process-pipe.js +test/js/node/test/parallel/test-stdout-pipeline-destroy.js +test/js/node/test/parallel/test-stdout-stderr-reading.js +test/js/node/test/parallel/test-stdout-stderr-write.js +test/js/node/test/parallel/test-stdout-to-file.js +test/js/node/test/parallel/test-stream-aliases-legacy.js +test/js/node/test/parallel/test-stream-auto-destroy.js +test/js/node/test/parallel/test-stream-await-drain-writers-in-synchronously-recursion-write.js +test/js/node/test/parallel/test-stream-backpressure.js +test/js/node/test/parallel/test-stream-base-prototype-accessors-enumerability.js +test/js/node/test/parallel/test-stream-big-packet.js +test/js/node/test/parallel/test-stream-big-push.js +test/js/node/test/parallel/test-stream-catch-rejections.js +test/js/node/test/parallel/test-stream-compose-operator.js +test/js/node/test/parallel/test-stream-compose.js +test/js/node/test/parallel/test-stream-construct.js +test/js/node/test/parallel/test-stream-consumers.js +test/js/node/test/parallel/test-stream-decoder-objectmode.js +test/js/node/test/parallel/test-stream-destroy-event-order.js +test/js/node/test/parallel/test-stream-drop-take.js +test/js/node/test/parallel/test-stream-duplex-destroy.js +test/js/node/test/parallel/test-stream-duplex-end.js +test/js/node/test/parallel/test-stream-duplex-from.js +test/js/node/test/parallel/test-stream-duplex-props.js +test/js/node/test/parallel/test-stream-duplex-readable-end.js +test/js/node/test/parallel/test-stream-duplex-readable-writable.js +test/js/node/test/parallel/test-stream-duplex-writable-finished.js +test/js/node/test/parallel/test-stream-duplex.js +test/js/node/test/parallel/test-stream-duplexpair.js +test/js/node/test/parallel/test-stream-end-of-streams.js +test/js/node/test/parallel/test-stream-end-paused.js +test/js/node/test/parallel/test-stream-err-multiple-callback-construction.js +test/js/node/test/parallel/test-stream-error-once.js +test/js/node/test/parallel/test-stream-event-names.js +test/js/node/test/parallel/test-stream-events-prepend.js +test/js/node/test/parallel/test-stream-filter.js +test/js/node/test/parallel/test-stream-finished.js +test/js/node/test/parallel/test-stream-flatMap.js +test/js/node/test/parallel/test-stream-forEach.js +test/js/node/test/parallel/test-stream-inheritance.js +test/js/node/test/parallel/test-stream-ispaused.js +test/js/node/test/parallel/test-stream-iterator-helpers-test262-tests.mjs +test/js/node/test/parallel/test-stream-map.js +test/js/node/test/parallel/test-stream-objectmode-undefined.js +test/js/node/test/parallel/test-stream-once-readable-pipe.js +test/js/node/test/parallel/test-stream-passthrough-drain.js +test/js/node/test/parallel/test-stream-pipe-after-end.js +test/js/node/test/parallel/test-stream-pipe-await-drain-manual-resume.js +test/js/node/test/parallel/test-stream-pipe-await-drain-push-while-write.js +test/js/node/test/parallel/test-stream-pipe-await-drain.js +test/js/node/test/parallel/test-stream-pipe-cleanup-pause.js +test/js/node/test/parallel/test-stream-pipe-cleanup.js +test/js/node/test/parallel/test-stream-pipe-deadlock.js +test/js/node/test/parallel/test-stream-pipe-error-handling.js +test/js/node/test/parallel/test-stream-pipe-error-unhandled.js +test/js/node/test/parallel/test-stream-pipe-event.js +test/js/node/test/parallel/test-stream-pipe-flow-after-unpipe.js +test/js/node/test/parallel/test-stream-pipe-flow.js +test/js/node/test/parallel/test-stream-pipe-manual-resume.js +test/js/node/test/parallel/test-stream-pipe-multiple-pipes.js +test/js/node/test/parallel/test-stream-pipe-needDrain.js +test/js/node/test/parallel/test-stream-pipe-same-destination-twice.js +test/js/node/test/parallel/test-stream-pipe-unpipe-streams.js +test/js/node/test/parallel/test-stream-pipe-without-listenerCount.js +test/js/node/test/parallel/test-stream-pipeline-async-iterator.js +test/js/node/test/parallel/test-stream-pipeline-duplex.js +test/js/node/test/parallel/test-stream-pipeline-listeners.js +test/js/node/test/parallel/test-stream-pipeline-process.js +test/js/node/test/parallel/test-stream-pipeline-queued-end-in-destroy.js +test/js/node/test/parallel/test-stream-pipeline-uncaught.js +test/js/node/test/parallel/test-stream-pipeline-with-empty-string.js +test/js/node/test/parallel/test-stream-preprocess.js +test/js/node/test/parallel/test-stream-promises.js +test/js/node/test/parallel/test-stream-push-order.js +test/js/node/test/parallel/test-stream-push-strings.js +test/js/node/test/parallel/test-stream-readable-aborted.js +test/js/node/test/parallel/test-stream-readable-add-chunk-during-data.js +test/js/node/test/parallel/test-stream-readable-constructor-set-methods.js +test/js/node/test/parallel/test-stream-readable-data.js +test/js/node/test/parallel/test-stream-readable-default-encoding.js +test/js/node/test/parallel/test-stream-readable-destroy.js +test/js/node/test/parallel/test-stream-readable-didRead.js +test/js/node/test/parallel/test-stream-readable-dispose.js +test/js/node/test/parallel/test-stream-readable-emit-readable-short-stream.js +test/js/node/test/parallel/test-stream-readable-emittedReadable.js +test/js/node/test/parallel/test-stream-readable-end-destroyed.js +test/js/node/test/parallel/test-stream-readable-ended.js +test/js/node/test/parallel/test-stream-readable-error-end.js +test/js/node/test/parallel/test-stream-readable-event.js +test/js/node/test/parallel/test-stream-readable-flow-recursion.js +test/js/node/test/parallel/test-stream-readable-from-web-termination.js +test/js/node/test/parallel/test-stream-readable-hwm-0-async.js +test/js/node/test/parallel/test-stream-readable-hwm-0-no-flow-data.js +test/js/node/test/parallel/test-stream-readable-hwm-0.js +test/js/node/test/parallel/test-stream-readable-infinite-read.js +test/js/node/test/parallel/test-stream-readable-invalid-chunk.js +test/js/node/test/parallel/test-stream-readable-needReadable.js +test/js/node/test/parallel/test-stream-readable-next-no-null.js +test/js/node/test/parallel/test-stream-readable-no-unneeded-readable.js +test/js/node/test/parallel/test-stream-readable-object-multi-push-async.js +test/js/node/test/parallel/test-stream-readable-pause-and-resume.js +test/js/node/test/parallel/test-stream-readable-readable-then-resume.js +test/js/node/test/parallel/test-stream-readable-readable.js +test/js/node/test/parallel/test-stream-readable-reading-readingMore.js +test/js/node/test/parallel/test-stream-readable-resume-hwm.js +test/js/node/test/parallel/test-stream-readable-resumeScheduled.js +test/js/node/test/parallel/test-stream-readable-setEncoding-existing-buffers.js +test/js/node/test/parallel/test-stream-readable-setEncoding-null.js +test/js/node/test/parallel/test-stream-readable-strategy-option.js +test/js/node/test/parallel/test-stream-readable-to-web-termination.js +test/js/node/test/parallel/test-stream-readable-to-web.js +test/js/node/test/parallel/test-stream-readable-unpipe-resume.js +test/js/node/test/parallel/test-stream-readable-unshift.js +test/js/node/test/parallel/test-stream-readable-with-unimplemented-_read.js +test/js/node/test/parallel/test-stream-readableListening-state.js +test/js/node/test/parallel/test-stream-reduce.js +test/js/node/test/parallel/test-stream-set-default-hwm.js +test/js/node/test/parallel/test-stream-some-find-every.mjs +test/js/node/test/parallel/test-stream-toArray.js +test/js/node/test/parallel/test-stream-toWeb-allows-server-response.js +test/js/node/test/parallel/test-stream-transform-callback-twice.js +test/js/node/test/parallel/test-stream-transform-constructor-set-methods.js +test/js/node/test/parallel/test-stream-transform-destroy.js +test/js/node/test/parallel/test-stream-transform-final-sync.js +test/js/node/test/parallel/test-stream-transform-final.js +test/js/node/test/parallel/test-stream-transform-flush-data.js +test/js/node/test/parallel/test-stream-transform-hwm0.js +test/js/node/test/parallel/test-stream-transform-objectmode-falsey-value.js +test/js/node/test/parallel/test-stream-transform-split-highwatermark.js +test/js/node/test/parallel/test-stream-transform-split-objectmode.js +test/js/node/test/parallel/test-stream-typedarray.js +test/js/node/test/parallel/test-stream-uint8array.js +test/js/node/test/parallel/test-stream-unpipe-event.js +test/js/node/test/parallel/test-stream-unshift-empty-chunk.js +test/js/node/test/parallel/test-stream-unshift-read-race.js +test/js/node/test/parallel/test-stream-writable-aborted.js +test/js/node/test/parallel/test-stream-writable-change-default-encoding.js +test/js/node/test/parallel/test-stream-writable-clear-buffer.js +test/js/node/test/parallel/test-stream-writable-constructor-set-methods.js +test/js/node/test/parallel/test-stream-writable-decoded-encoding.js +test/js/node/test/parallel/test-stream-writable-destroy.js +test/js/node/test/parallel/test-stream-writable-end-cb-error.js +test/js/node/test/parallel/test-stream-writable-end-cb-uncaught.js +test/js/node/test/parallel/test-stream-writable-end-multiple.js +test/js/node/test/parallel/test-stream-writable-ended-state.js +test/js/node/test/parallel/test-stream-writable-final-async.js +test/js/node/test/parallel/test-stream-writable-final-destroy.js +test/js/node/test/parallel/test-stream-writable-final-throw.js +test/js/node/test/parallel/test-stream-writable-finish-destroyed.js +test/js/node/test/parallel/test-stream-writable-finished-state.js +test/js/node/test/parallel/test-stream-writable-finished.js +test/js/node/test/parallel/test-stream-writable-invalid-chunk.js +test/js/node/test/parallel/test-stream-writable-needdrain-state.js +test/js/node/test/parallel/test-stream-writable-null.js +test/js/node/test/parallel/test-stream-writable-properties.js +test/js/node/test/parallel/test-stream-writable-writable.js +test/js/node/test/parallel/test-stream-writable-write-cb-error.js +test/js/node/test/parallel/test-stream-writable-write-cb-twice.js +test/js/node/test/parallel/test-stream-writable-write-error.js +test/js/node/test/parallel/test-stream-writable-write-writev-finish.js +test/js/node/test/parallel/test-stream-writableState-ending.js +test/js/node/test/parallel/test-stream-writableState-uncorked-bufferedRequestCount.js +test/js/node/test/parallel/test-stream-write-destroy.js +test/js/node/test/parallel/test-stream-write-drain.js +test/js/node/test/parallel/test-stream-write-final.js +test/js/node/test/parallel/test-stream-writev.js +test/js/node/test/parallel/test-stream2-base64-single-char-read-end.js +test/js/node/test/parallel/test-stream2-basic.js +test/js/node/test/parallel/test-stream2-compatibility.js +test/js/node/test/parallel/test-stream2-decode-partial.js +test/js/node/test/parallel/test-stream2-finish-pipe-error.js +test/js/node/test/parallel/test-stream2-finish-pipe.js +test/js/node/test/parallel/test-stream2-large-read-stall.js +test/js/node/test/parallel/test-stream2-objects.js +test/js/node/test/parallel/test-stream2-pipe-error-handling.js +test/js/node/test/parallel/test-stream2-pipe-error-once-listener.js +test/js/node/test/parallel/test-stream2-push.js +test/js/node/test/parallel/test-stream2-read-sync-stack.js +test/js/node/test/parallel/test-stream2-readable-empty-buffer-no-eof.js +test/js/node/test/parallel/test-stream2-readable-legacy-drain.js +test/js/node/test/parallel/test-stream2-readable-non-empty-end.js +test/js/node/test/parallel/test-stream2-readable-wrap-destroy.js +test/js/node/test/parallel/test-stream2-readable-wrap-empty.js +test/js/node/test/parallel/test-stream2-readable-wrap-error.js +test/js/node/test/parallel/test-stream2-readable-wrap.js +test/js/node/test/parallel/test-stream2-set-encoding.js +test/js/node/test/parallel/test-stream2-transform.js +test/js/node/test/parallel/test-stream2-unpipe-drain.js +test/js/node/test/parallel/test-stream2-unpipe-leak.js +test/js/node/test/parallel/test-stream2-writable.js +test/js/node/test/parallel/test-stream3-cork-end.js +test/js/node/test/parallel/test-stream3-cork-uncork.js +test/js/node/test/parallel/test-stream3-pause-then-read.js +test/js/node/test/parallel/test-stream3-pipeline-async-iterator.js +test/js/node/test/parallel/test-streams-highwatermark.js +test/js/node/test/parallel/test-string-decoder-end.js +test/js/node/test/parallel/test-string-decoder-fuzz.js +test/js/node/test/parallel/test-string-decoder.js +test/js/node/test/parallel/test-stringbytes-external.js +test/js/node/test/parallel/test-sync-fileread.js +test/js/node/test/parallel/test-sys.js +test/js/node/test/parallel/test-timers-api-refs.js +test/js/node/test/parallel/test-timers-args.js +test/js/node/test/parallel/test-timers-clear-null-does-not-throw-error.js +test/js/node/test/parallel/test-timers-clear-object-does-not-throw-error.js +test/js/node/test/parallel/test-timers-clear-timeout-interval-equivalent.js +test/js/node/test/parallel/test-timers-clearImmediate-als.js +test/js/node/test/parallel/test-timers-clearImmediate.js +test/js/node/test/parallel/test-timers-destroyed.js +test/js/node/test/parallel/test-timers-dispose.js +test/js/node/test/parallel/test-timers-immediate-promisified.js +test/js/node/test/parallel/test-timers-immediate-queue-throw.js +test/js/node/test/parallel/test-timers-immediate-queue.js +test/js/node/test/parallel/test-timers-immediate-unref-nested-once.js +test/js/node/test/parallel/test-timers-immediate-unref-simple.js +test/js/node/test/parallel/test-timers-immediate-unref.js +test/js/node/test/parallel/test-timers-immediate.js +test/js/node/test/parallel/test-timers-interval-promisified.js +test/js/node/test/parallel/test-timers-interval-throw.js +test/js/node/test/parallel/test-timers-invalid-clear.js +test/js/node/test/parallel/test-timers-linked-list.js +test/js/node/test/parallel/test-timers-max-duration-warning.js +test/js/node/test/parallel/test-timers-nan-duration-emit-once-per-process.js +test/js/node/test/parallel/test-timers-nan-duration-warning-promises.js +test/js/node/test/parallel/test-timers-nan-duration-warning.js +test/js/node/test/parallel/test-timers-negative-duration-warning-emit-once-per-process.js +test/js/node/test/parallel/test-timers-negative-duration-warning.js +test/js/node/test/parallel/test-timers-nested.js +test/js/node/test/parallel/test-timers-next-tick.js +test/js/node/test/parallel/test-timers-non-integer-delay.js +test/js/node/test/parallel/test-timers-not-emit-duration-zero.js +test/js/node/test/parallel/test-timers-now.js +test/js/node/test/parallel/test-timers-ordering.js +test/js/node/test/parallel/test-timers-process-tampering.js +test/js/node/test/parallel/test-timers-promises-scheduler.js +test/js/node/test/parallel/test-timers-promises.js +test/js/node/test/parallel/test-timers-refresh-in-callback.js +test/js/node/test/parallel/test-timers-refresh.js +test/js/node/test/parallel/test-timers-same-timeout-wrong-list-deleted.js +test/js/node/test/parallel/test-timers-setimmediate-infinite-loop.js +test/js/node/test/parallel/test-timers-socket-timeout-removes-other-socket-unref-timer.js +test/js/node/test/parallel/test-timers-this.js +test/js/node/test/parallel/test-timers-throw-when-cb-not-function.js +test/js/node/test/parallel/test-timers-timeout-promisified.js +test/js/node/test/parallel/test-timers-timeout-to-interval.js +test/js/node/test/parallel/test-timers-timeout-with-non-integer.js +test/js/node/test/parallel/test-timers-to-primitive.js +test/js/node/test/parallel/test-timers-uncaught-exception.js +test/js/node/test/parallel/test-timers-unenroll-unref-interval.js +test/js/node/test/parallel/test-timers-unref-throw-then-ref.js +test/js/node/test/parallel/test-timers-unref.js +test/js/node/test/parallel/test-timers-unrefd-interval-still-fires.js +test/js/node/test/parallel/test-timers-unrefed-in-beforeexit.js +test/js/node/test/parallel/test-timers-unrefed-in-callback.js +test/js/node/test/parallel/test-timers-user-call.js +test/js/node/test/parallel/test-timers-zero-timeout.js +test/js/node/test/parallel/test-timers.js +test/js/node/test/parallel/test-tls-0-dns-altname.js +test/js/node/test/parallel/test-tls-add-context.js +test/js/node/test/parallel/test-tls-alert-handling.js +test/js/node/test/parallel/test-tls-alert.js +test/js/node/test/parallel/test-tls-ca-concat.js +test/js/node/test/parallel/test-tls-cert-ext-encoding.js +test/js/node/test/parallel/test-tls-cert-regression.js +test/js/node/test/parallel/test-tls-check-server-identity.js +test/js/node/test/parallel/test-tls-client-abort.js +test/js/node/test/parallel/test-tls-client-abort2.js +test/js/node/test/parallel/test-tls-client-destroy-soon.js +test/js/node/test/parallel/test-tls-client-renegotiation-limit.js +test/js/node/test/parallel/test-tls-client-verify.js +test/js/node/test/parallel/test-tls-close-error.js +test/js/node/test/parallel/test-tls-close-event-after-write.js +test/js/node/test/parallel/test-tls-connect-abort-controller.js +test/js/node/test/parallel/test-tls-connect-address-family.js +test/js/node/test/parallel/test-tls-connect-hints-option.js +test/js/node/test/parallel/test-tls-connect-hwm-option.js +test/js/node/test/parallel/test-tls-connect-no-host.js +test/js/node/test/parallel/test-tls-connect-pipe.js +test/js/node/test/parallel/test-tls-connect-secure-context.js +test/js/node/test/parallel/test-tls-connect-simple.js +test/js/node/test/parallel/test-tls-destroy-whilst-write.js +test/js/node/test/parallel/test-tls-dhe.js +test/js/node/test/parallel/test-tls-ecdh-auto.js +test/js/node/test/parallel/test-tls-ecdh-multiple.js +test/js/node/test/parallel/test-tls-ecdh.js +test/js/node/test/parallel/test-tls-econnreset.js +test/js/node/test/parallel/test-tls-env-extra-ca-no-crypto.js +test/js/node/test/parallel/test-tls-fast-writing.js +test/js/node/test/parallel/test-tls-friendly-error-message.js +test/js/node/test/parallel/test-tls-get-ca-certificates-bundled-subset.js +test/js/node/test/parallel/test-tls-get-ca-certificates-bundled.js +test/js/node/test/parallel/test-tls-get-ca-certificates-default.js +test/js/node/test/parallel/test-tls-get-ca-certificates-error.js +test/js/node/test/parallel/test-tls-get-ca-certificates-extra-empty.js +test/js/node/test/parallel/test-tls-get-ca-certificates-extra-subset.js +test/js/node/test/parallel/test-tls-get-ca-certificates-extra.js +test/js/node/test/parallel/test-tls-handshake-error.js +test/js/node/test/parallel/test-tls-inception.js +test/js/node/test/parallel/test-tls-interleave.js +test/js/node/test/parallel/test-tls-invoke-queued.js +test/js/node/test/parallel/test-tls-junk-closes-server.js +test/js/node/test/parallel/test-tls-keyengine-invalid-arg-type.js +test/js/node/test/parallel/test-tls-legacy-pfx.js +test/js/node/test/parallel/test-tls-multiple-cas-as-string.js +test/js/node/test/parallel/test-tls-net-connect-prefer-path.js +test/js/node/test/parallel/test-tls-no-rsa-key.js +test/js/node/test/parallel/test-tls-no-sslv3.js +test/js/node/test/parallel/test-tls-ocsp-callback.js +test/js/node/test/parallel/test-tls-on-empty-socket.js +test/js/node/test/parallel/test-tls-options-boolean-check.js +test/js/node/test/parallel/test-tls-peer-certificate-encoding.js +test/js/node/test/parallel/test-tls-peer-certificate-multi-keys.js +test/js/node/test/parallel/test-tls-psk-server.js +test/js/node/test/parallel/test-tls-request-timeout.js +test/js/node/test/parallel/test-tls-reuse-host-from-socket.js +test/js/node/test/parallel/test-tls-root-certificates.js +test/js/node/test/parallel/test-tls-secure-context-usage-order.js +test/js/node/test/parallel/test-tls-securepair-server.js +test/js/node/test/parallel/test-tls-server-connection-server.js +test/js/node/test/parallel/test-tls-server-verify.js +test/js/node/test/parallel/test-tls-session-cache.js +test/js/node/test/parallel/test-tls-set-ciphers-error.js +test/js/node/test/parallel/test-tls-set-ciphers.js +test/js/node/test/parallel/test-tls-set-encoding.js +test/js/node/test/parallel/test-tls-sni-server-client.js +test/js/node/test/parallel/test-tls-socket-allow-half-open-option.js +test/js/node/test/parallel/test-tls-startcom-wosign-whitelist.js +test/js/node/test/parallel/test-tls-timeout-server-2.js +test/js/node/test/parallel/test-tls-tlswrap-segfault-2.js +test/js/node/test/parallel/test-tls-tlswrap-segfault.js +test/js/node/test/parallel/test-tls-translate-peer-certificate.js +test/js/node/test/parallel/test-tls-transport-destroy-after-own-gc.js +test/js/node/test/parallel/test-tls-use-after-free-regression.js +test/js/node/test/parallel/test-tls-wrap-econnreset-localaddress.js +test/js/node/test/parallel/test-tls-wrap-econnreset-socket.js +test/js/node/test/parallel/test-tls-wrap-econnreset.js +test/js/node/test/parallel/test-tls-write-error.js +test/js/node/test/parallel/test-tls-zero-clear-in.js +test/js/node/test/parallel/test-tty-backwards-api.js +test/js/node/test/parallel/test-tty-stdin-end.js +test/js/node/test/parallel/test-tty-stdin-pipe.js +test/js/node/test/parallel/test-tz-version.js +test/js/node/test/parallel/test-unhandled-exception-with-worker-inuse.js +test/js/node/test/parallel/test-url-canParse-whatwg.js +test/js/node/test/parallel/test-url-domain-ascii-unicode.js +test/js/node/test/parallel/test-url-format-invalid-input.js +test/js/node/test/parallel/test-url-format-whatwg.js +test/js/node/test/parallel/test-url-format.js +test/js/node/test/parallel/test-url-is-url-internal.js +test/js/node/test/parallel/test-url-parse-format.js +test/js/node/test/parallel/test-url-parse-invalid-input.js +test/js/node/test/parallel/test-url-parse-query.js +test/js/node/test/parallel/test-url-relative.js +test/js/node/test/parallel/test-url-revokeobjecturl.js +test/js/node/test/parallel/test-url-urltooptions.js +test/js/node/test/parallel/test-utf8-scripts.js +test/js/node/test/parallel/test-util-callbackify.js +test/js/node/test/parallel/test-util-deprecate-invalid-code.js +test/js/node/test/parallel/test-util-deprecate.js +test/js/node/test/parallel/test-util-emit-experimental-warning.js +test/js/node/test/parallel/test-util-inherits.js +test/js/node/test/parallel/test-util-inspect-getters-accessing-this.js +test/js/node/test/parallel/test-util-inspect-long-running.js +test/js/node/test/parallel/test-util-inspect-proxy.js +test/js/node/test/parallel/test-util-internal.js +test/js/node/test/parallel/test-util-parse-env.js +test/js/node/test/parallel/test-util-primordial-monkeypatching.js +test/js/node/test/parallel/test-util-promisify-custom-names.mjs +test/js/node/test/parallel/test-util-promisify.js +test/js/node/test/parallel/test-util-sigint-watchdog.js +test/js/node/test/parallel/test-util-sleep.js +test/js/node/test/parallel/test-util-stripvtcontrolcharacters.js +test/js/node/test/parallel/test-util-styletext.js +test/js/node/test/parallel/test-util-text-decoder.js +test/js/node/test/parallel/test-util-types-exists.js +test/js/node/test/parallel/test-util-types.js +test/js/node/test/parallel/test-util.js +test/js/node/test/parallel/test-v8-deserialize-buffer.js +test/js/node/test/parallel/test-v8-flag-pool-size-0.js +test/js/node/test/parallel/test-v8-getheapsnapshot-twice.js +test/js/node/test/parallel/test-v8-global-setter.js +test/js/node/test/parallel/test-v8-serialize-leak.js +test/js/node/test/parallel/test-vm-access-process-env.js +test/js/node/test/parallel/test-vm-api-handles-getter-errors.js +test/js/node/test/parallel/test-vm-attributes-property-not-on-sandbox.js +test/js/node/test/parallel/test-vm-basic.js +test/js/node/test/parallel/test-vm-cached-data.js +test/js/node/test/parallel/test-vm-context-async-script.js +test/js/node/test/parallel/test-vm-context-dont-contextify.js +test/js/node/test/parallel/test-vm-context-property-forwarding.js +test/js/node/test/parallel/test-vm-context.js +test/js/node/test/parallel/test-vm-create-and-run-in-context.js +test/js/node/test/parallel/test-vm-create-context-accessors.js +test/js/node/test/parallel/test-vm-create-context-arg.js +test/js/node/test/parallel/test-vm-create-context-circular-reference.js +test/js/node/test/parallel/test-vm-createcacheddata.js +test/js/node/test/parallel/test-vm-cross-context.js +test/js/node/test/parallel/test-vm-data-property-writable.js +test/js/node/test/parallel/test-vm-deleting-property.js +test/js/node/test/parallel/test-vm-function-declaration.js +test/js/node/test/parallel/test-vm-function-redefinition.js +test/js/node/test/parallel/test-vm-getters.js +test/js/node/test/parallel/test-vm-global-assignment.js +test/js/node/test/parallel/test-vm-global-configurable-properties.js +test/js/node/test/parallel/test-vm-global-define-property.js +test/js/node/test/parallel/test-vm-global-get-own.js +test/js/node/test/parallel/test-vm-global-non-writable-properties.js +test/js/node/test/parallel/test-vm-global-property-enumerator.js +test/js/node/test/parallel/test-vm-global-property-interceptors.js +test/js/node/test/parallel/test-vm-global-property-prototype.js +test/js/node/test/parallel/test-vm-global-setter.js +test/js/node/test/parallel/test-vm-harmony-symbols.js +test/js/node/test/parallel/test-vm-indexed-properties.js +test/js/node/test/parallel/test-vm-inherited_properties.js +test/js/node/test/parallel/test-vm-is-context.js +test/js/node/test/parallel/test-vm-low-stack-space.js +test/js/node/test/parallel/test-vm-module-basic.js +test/js/node/test/parallel/test-vm-module-cached-data.js +test/js/node/test/parallel/test-vm-module-dynamic-import.js +test/js/node/test/parallel/test-vm-module-dynamic-namespace.js +test/js/node/test/parallel/test-vm-module-errors.js +test/js/node/test/parallel/test-vm-module-import-meta.js +test/js/node/test/parallel/test-vm-module-link.js +test/js/node/test/parallel/test-vm-module-reevaluate.js +test/js/node/test/parallel/test-vm-module-referrer-realm.mjs +test/js/node/test/parallel/test-vm-module-synthetic.js +test/js/node/test/parallel/test-vm-new-script-context.js +test/js/node/test/parallel/test-vm-new-script-new-context.js +test/js/node/test/parallel/test-vm-new-script-this-context.js +test/js/node/test/parallel/test-vm-no-dynamic-import-callback.js +test/js/node/test/parallel/test-vm-not-strict.js +test/js/node/test/parallel/test-vm-options-validation.js +test/js/node/test/parallel/test-vm-ownkeys.js +test/js/node/test/parallel/test-vm-ownpropertynames.js +test/js/node/test/parallel/test-vm-ownpropertysymbols.js +test/js/node/test/parallel/test-vm-parse-abort-on-uncaught-exception.js +test/js/node/test/parallel/test-vm-preserves-property.js +test/js/node/test/parallel/test-vm-proxies.js +test/js/node/test/parallel/test-vm-proxy-failure-CP.js +test/js/node/test/parallel/test-vm-run-in-new-context.js +test/js/node/test/parallel/test-vm-script-throw-in-tostring.js +test/js/node/test/parallel/test-vm-set-property-proxy.js +test/js/node/test/parallel/test-vm-set-proto-null-on-globalthis.js +test/js/node/test/parallel/test-vm-sigint-existing-handler.js +test/js/node/test/parallel/test-vm-sigint.js +test/js/node/test/parallel/test-vm-static-this.js +test/js/node/test/parallel/test-vm-strict-assign.js +test/js/node/test/parallel/test-vm-strict-mode.js +test/js/node/test/parallel/test-vm-symbols.js +test/js/node/test/parallel/test-vm-syntax-error-message.js +test/js/node/test/parallel/test-vm-syntax-error-stderr.js +test/js/node/test/parallel/test-vm-timeout-escape-promise-module.js +test/js/node/test/parallel/test-vm-timeout-escape-promise.js +test/js/node/test/parallel/test-vm-timeout.js +test/js/node/test/parallel/test-vm-util-lazy-properties.js +test/js/node/test/parallel/test-warn-stream-wrap.js +test/js/node/test/parallel/test-weakref.js +test/js/node/test/parallel/test-webcrypto-cryptokey-workers.js +test/js/node/test/parallel/test-webcrypto-derivebits-cfrg.js +test/js/node/test/parallel/test-webcrypto-derivekey-cfrg.js +test/js/node/test/parallel/test-webcrypto-derivekey.js +test/js/node/test/parallel/test-webcrypto-digest.js +test/js/node/test/parallel/test-webcrypto-encrypt-decrypt-aes.js +test/js/node/test/parallel/test-webcrypto-encrypt-decrypt.js +test/js/node/test/parallel/test-webcrypto-getRandomValues.js +test/js/node/test/parallel/test-webcrypto-random.js +test/js/node/test/parallel/test-webcrypto-sign-verify.js +test/js/node/test/parallel/test-webcrypto-wrap-unwrap.js +test/js/node/test/parallel/test-websocket.js +test/js/node/test/parallel/test-webstream-string-tag.js +test/js/node/test/parallel/test-whatwg-encoding-custom-api-basics.js +test/js/node/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js +test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js +test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-fatal.js +test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-ignorebom.js +test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-invalid-arg.js +test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-streaming.js +test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-utf16-surrogates.js +test/js/node/test/parallel/test-whatwg-events-add-event-listener-options-passive.js +test/js/node/test/parallel/test-whatwg-events-add-event-listener-options-signal.js +test/js/node/test/parallel/test-whatwg-events-customevent.js +test/js/node/test/parallel/test-whatwg-events-event-constructors.js +test/js/node/test/parallel/test-whatwg-events-eventtarget-this-of-listener.js +test/js/node/test/parallel/test-whatwg-readablebytestream.js +test/js/node/test/parallel/test-whatwg-readablebytestreambyob.js +test/js/node/test/parallel/test-whatwg-readablestream.mjs +test/js/node/test/parallel/test-whatwg-url-canparse.js +test/js/node/test/parallel/test-whatwg-url-custom-deepequal.js +test/js/node/test/parallel/test-whatwg-url-custom-domainto.js +test/js/node/test/parallel/test-whatwg-url-custom-global.js +test/js/node/test/parallel/test-whatwg-url-custom-href-side-effect.js +test/js/node/test/parallel/test-whatwg-url-custom-inspect.js +test/js/node/test/parallel/test-whatwg-url-custom-parsing.js +test/js/node/test/parallel/test-whatwg-url-custom-properties.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-append.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-delete.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-entries.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-foreach.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-get.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-getall.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-has.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-keys.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-set.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-sort.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-stringifier.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams-values.js +test/js/node/test/parallel/test-whatwg-url-custom-searchparams.js +test/js/node/test/parallel/test-whatwg-url-custom-setters.js +test/js/node/test/parallel/test-whatwg-url-custom-tostringtag.js +test/js/node/test/parallel/test-whatwg-url-invalidthis.js +test/js/node/test/parallel/test-whatwg-url-override-hostname.js +test/js/node/test/parallel/test-whatwg-url-toascii.js +test/js/node/test/parallel/test-whatwg-writablestream-close.js +test/js/node/test/parallel/test-windows-abort-exitcode.js +test/js/node/test/parallel/test-windows-failed-heap-allocation.js +test/js/node/test/parallel/test-worker-abort-on-uncaught-exception.js +test/js/node/test/parallel/test-worker-arraybuffer-zerofill.js +test/js/node/test/parallel/test-worker-cjs-workerdata.js +test/js/node/test/parallel/test-worker-cleanexit-with-js.js +test/js/node/test/parallel/test-worker-cleanexit-with-moduleload.js +test/js/node/test/parallel/test-worker-console-listeners.js +test/js/node/test/parallel/test-worker-dns-terminate-during-query.js +test/js/node/test/parallel/test-worker-environmentdata.js +test/js/node/test/parallel/test-worker-esm-exit.js +test/js/node/test/parallel/test-worker-esm-missing-main.js +test/js/node/test/parallel/test-worker-esmodule.js +test/js/node/test/parallel/test-worker-event.js +test/js/node/test/parallel/test-worker-exit-event-error.js +test/js/node/test/parallel/test-worker-exit-from-uncaught-exception.js +test/js/node/test/parallel/test-worker-exit-heapsnapshot.js +test/js/node/test/parallel/test-worker-fs-stat-watcher.js +test/js/node/test/parallel/test-worker-heap-snapshot.js +test/js/node/test/parallel/test-worker-http2-generic-streams-terminate.js +test/js/node/test/parallel/test-worker-invalid-workerdata.js +test/js/node/test/parallel/test-worker-load-file-with-extension-other-than-js.js +test/js/node/test/parallel/test-worker-memory.js +test/js/node/test/parallel/test-worker-message-channel-sharedarraybuffer.js +test/js/node/test/parallel/test-worker-message-event.js +test/js/node/test/parallel/test-worker-message-port-constructor.js +test/js/node/test/parallel/test-worker-message-port-infinite-message-loop.js +test/js/node/test/parallel/test-worker-message-port-receive-message.js +test/js/node/test/parallel/test-worker-message-port-terminate-transfer-list.js +test/js/node/test/parallel/test-worker-message-port-transfer-duplicate.js +test/js/node/test/parallel/test-worker-message-port-transfer-terminate.js +test/js/node/test/parallel/test-worker-message-port-wasm-module.js +test/js/node/test/parallel/test-worker-message-port-wasm-threads.js +test/js/node/test/parallel/test-worker-mjs-workerdata.js +test/js/node/test/parallel/test-worker-nested-on-process-exit.js +test/js/node/test/parallel/test-worker-nested-uncaught.js +test/js/node/test/parallel/test-worker-no-sab.js +test/js/node/test/parallel/test-worker-non-fatal-uncaught-exception.js +test/js/node/test/parallel/test-worker-on-process-exit.js +test/js/node/test/parallel/test-worker-onmessage-not-a-function.js +test/js/node/test/parallel/test-worker-onmessage.js +test/js/node/test/parallel/test-worker-parent-port-ref.js +test/js/node/test/parallel/test-worker-process-argv.js +test/js/node/test/parallel/test-worker-ref-onexit.js +test/js/node/test/parallel/test-worker-ref.js +test/js/node/test/parallel/test-worker-relative-path-double-dot.js +test/js/node/test/parallel/test-worker-relative-path.js +test/js/node/test/parallel/test-worker-safe-getters.js +test/js/node/test/parallel/test-worker-sharedarraybuffer-from-worker-thread.js +test/js/node/test/parallel/test-worker-terminate-http2-respond-with-file.js +test/js/node/test/parallel/test-worker-terminate-nested.js +test/js/node/test/parallel/test-worker-terminate-null-handler.js +test/js/node/test/parallel/test-worker-terminate-timers.js +test/js/node/test/parallel/test-worker-type-check.js +test/js/node/test/parallel/test-worker-unref-from-message-during-exit.js +test/js/node/test/parallel/test-worker-workerdata-sharedarraybuffer.js +test/js/node/test/parallel/test-worker.js +test/js/node/test/parallel/test-worker.mjs +test/js/node/test/parallel/test-zlib-brotli-16GB.js +test/js/node/test/parallel/test-zlib-brotli-flush.js +test/js/node/test/parallel/test-zlib-brotli-from-brotli.js +test/js/node/test/parallel/test-zlib-brotli-from-string.js +test/js/node/test/parallel/test-zlib-brotli-kmaxlength-rangeerror.js +test/js/node/test/parallel/test-zlib-brotli.js +test/js/node/test/parallel/test-zlib-close-after-error.js +test/js/node/test/parallel/test-zlib-close-after-write.js +test/js/node/test/parallel/test-zlib-close-in-ondata.js +test/js/node/test/parallel/test-zlib-const.js +test/js/node/test/parallel/test-zlib-convenience-methods.js +test/js/node/test/parallel/test-zlib-crc32.js +test/js/node/test/parallel/test-zlib-create-raw.js +test/js/node/test/parallel/test-zlib-deflate-constructors.js +test/js/node/test/parallel/test-zlib-deflate-raw-inherits.js +test/js/node/test/parallel/test-zlib-destroy-pipe.js +test/js/node/test/parallel/test-zlib-destroy.js +test/js/node/test/parallel/test-zlib-dictionary-fail.js +test/js/node/test/parallel/test-zlib-dictionary.js +test/js/node/test/parallel/test-zlib-empty-buffer.js +test/js/node/test/parallel/test-zlib-failed-init.js +test/js/node/test/parallel/test-zlib-flush-drain-longblock.js +test/js/node/test/parallel/test-zlib-flush-drain.js +test/js/node/test/parallel/test-zlib-flush-flags.js +test/js/node/test/parallel/test-zlib-flush-write-sync-interleaved.js +test/js/node/test/parallel/test-zlib-flush.js +test/js/node/test/parallel/test-zlib-from-concatenated-gzip.js +test/js/node/test/parallel/test-zlib-from-gzip-with-trailing-garbage.js +test/js/node/test/parallel/test-zlib-from-gzip.js +test/js/node/test/parallel/test-zlib-from-string.js +test/js/node/test/parallel/test-zlib-invalid-arg-value-brotli-compress.js +test/js/node/test/parallel/test-zlib-invalid-input-memory.js +test/js/node/test/parallel/test-zlib-invalid-input.js +test/js/node/test/parallel/test-zlib-kmaxlength-rangeerror.js +test/js/node/test/parallel/test-zlib-maxOutputLength.js +test/js/node/test/parallel/test-zlib-no-stream.js +test/js/node/test/parallel/test-zlib-not-string-or-buffer.js +test/js/node/test/parallel/test-zlib-object-write.js +test/js/node/test/parallel/test-zlib-params.js +test/js/node/test/parallel/test-zlib-premature-end.js +test/js/node/test/parallel/test-zlib-random-byte-pipes.js +test/js/node/test/parallel/test-zlib-reset-before-write.js +test/js/node/test/parallel/test-zlib-sync-no-event.js +test/js/node/test/parallel/test-zlib-truncated.js +test/js/node/test/parallel/test-zlib-unzip-one-byte-chunks.js +test/js/node/test/parallel/test-zlib-write-after-close.js +test/js/node/test/parallel/test-zlib-write-after-end.js +test/js/node/test/parallel/test-zlib-write-after-flush.js +test/js/node/test/parallel/test-zlib-zero-byte.js +test/js/node/test/parallel/test-zlib-zero-windowBits.js +test/js/node/test/parallel/test-zlib-zstd-flush.js +test/js/node/test/parallel/test-zlib-zstd-from-string.js +test/js/node/test/parallel/test-zlib-zstd-from-zstd.js +test/js/node/test/parallel/test-zlib-zstd-kmaxlength-rangeerror.js +test/js/node/test/parallel/test-zlib-zstd-pledged-src-size.js +test/js/node/test/parallel/test-zlib-zstd.js +test/js/node/test/parallel/test-zlib.js +test/js/node/test/sequential/test-buffer-creation-regression.js +test/js/node/test/sequential/test-child-process-emfile.js +test/js/node/test/sequential/test-child-process-execsync.js +test/js/node/test/sequential/test-child-process-exit.js +test/js/node/test/sequential/test-crypto-timing-safe-equal.js +test/js/node/test/sequential/test-debug-prompt.js +test/js/node/test/sequential/test-dgram-implicit-bind-failure.js +test/js/node/test/sequential/test-dgram-pingpong.js +test/js/node/test/sequential/test-fs-opendir-recursive.js +test/js/node/test/sequential/test-fs-readdir-recursive.js +test/js/node/test/sequential/test-fs-stat-sync-overflow.js +test/js/node/test/sequential/test-http-econnrefused.js +test/js/node/test/sequential/test-http-keep-alive-large-write.js +test/js/node/test/sequential/test-http-server-keep-alive-timeout-slow-server.js +test/js/node/test/sequential/test-http2-large-file.js +test/js/node/test/sequential/test-init.js +test/js/node/test/sequential/test-net-GH-5504.js +test/js/node/test/sequential/test-net-better-error-messages-port.js +test/js/node/test/sequential/test-net-connect-econnrefused.js +test/js/node/test/sequential/test-net-connect-handle-econnrefused.js +test/js/node/test/sequential/test-net-reconnect-error.js +test/js/node/test/sequential/test-net-response-size.js +test/js/node/test/sequential/test-net-server-address.js +test/js/node/test/sequential/test-net-server-bind.js +test/js/node/test/sequential/test-require-cache-without-stat.js +test/js/node/test/sequential/test-single-executable-application-assets-raw.js +test/js/node/test/sequential/test-single-executable-application-assets.js +test/js/node/test/sequential/test-single-executable-application-disable-experimental-sea-warning.js +test/js/node/test/sequential/test-single-executable-application-empty.js +test/js/node/test/sequential/test-single-executable-application-snapshot-and-code-cache.js +test/js/node/test/sequential/test-single-executable-application-snapshot-worker.js +test/js/node/test/sequential/test-single-executable-application-snapshot.js +test/js/node/test/sequential/test-single-executable-application-use-code-cache.js +test/js/node/test/sequential/test-single-executable-application.js +test/js/node/test/sequential/test-stream2-fs.js +test/js/node/test/sequential/test-timers-block-eventloop.js +test/js/node/test/sequential/test-timers-set-interval-excludes-callback-duration.js +test/js/node/test/sequential/test-tls-connect.js +test/js/node/test/sequential/test-tls-lookup.js +test/js/node/test/sequential/test-tls-psk-client.js +test/js/node/test/sequential/test-tls-securepair-client.js +test/js/node/test/sequential/test-vm-timeout-rethrow.js +test/js/node/test_runner/node-test.test.ts +test/js/node/timers.promises/timers.promises.test.ts +test/js/node/timers/node-timers.test.ts +test/js/node/tls/fetch-tls-cert.test.ts +test/js/node/tls/node-tls-cert.test.ts +test/js/node/tls/node-tls-connect.test.ts +test/js/node/tls/node-tls-context.test.ts +test/js/node/tls/node-tls-create-secure-context-args.test.ts +test/js/node/tls/node-tls-internals.test.ts +test/js/node/tls/node-tls-namedpipes.test.ts +test/js/node/tls/node-tls-no-cipher-match-error.test.ts +test/js/node/tls/node-tls-rootcertificates-immutable.test.ts +test/js/node/tls/node-tls-server.test.ts +test/js/node/tls/node-tls-socket-allow-half-open-option.test.ts +test/js/node/tls/node-tls-upgrade.test.ts +test/js/node/tls/renegotiation.test.ts +test/js/node/tty.test.ts +test/js/node/url/pathToFileURL.test.ts +test/js/node/url/url-canParse-whatwg.test.js +test/js/node/url/url-domain-ascii-unicode.test.js +test/js/node/url/url-fileurltopath.test.js +test/js/node/url/url-format-invalid-input.test.js +test/js/node/url/url-format-whatwg.test.js +test/js/node/url/url-format.test.js +test/js/node/url/url-is-url.test.js +test/js/node/url/url-null-char.test.js +test/js/node/url/url-parse-format.test.js +test/js/node/url/url-parse-invalid-input.test.js +test/js/node/url/url-parse-ipv6.test.ts +test/js/node/url/url-parse-query.test.js +test/js/node/url/url-pathtofileurl.test.js +test/js/node/url/url-relative.test.js +test/js/node/url/url-revokeobjecturl.test.js +test/js/node/url/url.test.ts +test/js/node/util/bun-inspect.test.ts +test/js/node/util/custom-inspect.test.js +test/js/node/util/mime-api.test.ts +test/js/node/util/node-inspect-tests/import.test.mjs +test/js/node/util/node-inspect-tests/internal-inspect.test.js +test/js/node/util/node-inspect-tests/parallel/util-format.test.js +test/js/node/util/node-inspect-tests/parallel/util-inspect-getters-accessing-this.test.js +test/js/node/util/node-inspect-tests/parallel/util-inspect-long-running.test.mjs +test/js/node/util/node-inspect-tests/parallel/util-inspect-proxy.test.js +test/js/node/util/node-inspect-tests/parallel/util-inspect.test.js +test/js/node/util/parse_args/default-args.test.mjs +test/js/node/util/parse_args/parse-args.test.mjs +test/js/node/util/test-aborted.test.ts +test/js/node/util/test-util-types.test.js +test/js/node/util/util-callbackify.test.js +test/js/node/util/util-promisify.test.js +test/js/node/util/util.test.js +test/js/node/v8/capture-stack-trace.test.js +test/js/node/v8/v8-date-parser.test.js +test/js/node/vm/happy-dom-vm-16277.test.ts +test/js/node/vm/script-leak.test.ts +test/js/node/vm/sourcetextmodule-leak.test.ts +test/js/node/vm/vm-sourceUrl.test.ts +test/js/node/vm/vm.test.ts +test/js/node/watch/fs.watch.test.ts +test/js/node/watch/fs.watchFile.test.ts +test/js/node/worker_threads/15787.test.ts +test/js/node/worker_threads/worker_destruction.test.ts +test/js/node/worker_threads/worker_threads.test.ts +test/js/node/zlib/bytesWritten.test.ts +test/js/node/zlib/deflate-streaming.test.ts +test/js/node/zlib/leak.test.ts +test/js/node/zlib/zlib.kMaxLength.global.test.js +test/js/node/zlib/zlib.test.js +test/js/sql/local-sql.test.ts +test/js/sql/sql.test.ts +test/js/sql/tls-sql.test.ts +test/js/third_party/@azure/service-bus/azure-service-bus.test.ts +test/js/third_party/@duckdb/node-api/duckdb.test.ts +test/js/third_party/@electric-sql/pglite/pglite.test.ts +test/js/third_party/@fastify/websocket/fastity-test-websocket.test.js +test/js/third_party/@napi-rs/canvas/napi-rs-canvas.test.ts +test/js/third_party/astro/astro-post.test.js +test/js/third_party/body-parser/express-body-parser-test.test.ts +test/js/third_party/body-parser/express-bun-build-compile.test.ts +test/js/third_party/body-parser/express-memory-leak.test.ts +test/js/third_party/comlink/comlink.test.ts +test/js/third_party/duckdb/duckdb-basic-usage.test.ts +test/js/third_party/es-module-lexer/es-module-lexer.test.ts +test/js/third_party/esbuild/esbuild-child_process.test.ts +test/js/third_party/express/app.router.test.ts +test/js/third_party/express/express.json.test.ts +test/js/third_party/express/express.test.ts +test/js/third_party/express/express.text.test.ts +test/js/third_party/express/res.json.test.ts +test/js/third_party/express/res.location.test.ts +test/js/third_party/express/res.redirect.test.ts +test/js/third_party/express/res.send.test.ts +test/js/third_party/express/res.sendFile.test.ts +test/js/third_party/grpc-js/test-call-credentials.test.ts +test/js/third_party/grpc-js/test-call-propagation.test.ts +test/js/third_party/grpc-js/test-certificate-provider.test.ts +test/js/third_party/grpc-js/test-channel-credentials.test.ts +test/js/third_party/grpc-js/test-channelz.test.ts +test/js/third_party/grpc-js/test-client.test.ts +test/js/third_party/grpc-js/test-confg-parsing.test.ts +test/js/third_party/grpc-js/test-deadline.test.ts +test/js/third_party/grpc-js/test-duration.test.ts +test/js/third_party/grpc-js/test-end-to-end.test.ts +test/js/third_party/grpc-js/test-global-subchannel-pool.test.ts +test/js/third_party/grpc-js/test-idle-timer.test.ts +test/js/third_party/grpc-js/test-local-subchannel-pool.test.ts +test/js/third_party/grpc-js/test-logging.test.ts +test/js/third_party/grpc-js/test-metadata.test.ts +test/js/third_party/grpc-js/test-outlier-detection.test.ts +test/js/third_party/grpc-js/test-pick-first.test.ts +test/js/third_party/grpc-js/test-prototype-pollution.test.ts +test/js/third_party/grpc-js/test-resolver.test.ts +test/js/third_party/grpc-js/test-retry-config.test.ts +test/js/third_party/grpc-js/test-retry.test.ts +test/js/third_party/grpc-js/test-server-credentials.test.ts +test/js/third_party/grpc-js/test-server-deadlines.test.ts +test/js/third_party/grpc-js/test-server-errors.test.ts +test/js/third_party/grpc-js/test-server-interceptors.test.ts +test/js/third_party/grpc-js/test-server.test.ts +test/js/third_party/grpc-js/test-status-builder.test.ts +test/js/third_party/grpc-js/test-tonic.test.ts +test/js/third_party/grpc-js/test-uri-parser.test.ts +test/js/third_party/hono/hello-world-fixture.test.ts +test/js/third_party/hono/hello-world.test.ts +test/js/third_party/http2-wrapper/http2-wrapper.test.ts +test/js/third_party/jsonwebtoken/async_sign.test.js +test/js/third_party/jsonwebtoken/buffer.test.js +test/js/third_party/jsonwebtoken/claim-aud.test.js +test/js/third_party/jsonwebtoken/claim-exp.test.js +test/js/third_party/jsonwebtoken/claim-iat.test.js +test/js/third_party/jsonwebtoken/claim-iss.test.js +test/js/third_party/jsonwebtoken/claim-jti.test.js +test/js/third_party/jsonwebtoken/claim-nbf.test.js +test/js/third_party/jsonwebtoken/claim-private.test.js +test/js/third_party/jsonwebtoken/claim-sub.test.js +test/js/third_party/jsonwebtoken/decoding.test.js +test/js/third_party/jsonwebtoken/encoding.test.js +test/js/third_party/jsonwebtoken/expires_format.test.js +test/js/third_party/jsonwebtoken/header-kid.test.js +test/js/third_party/jsonwebtoken/invalid_exp.test.js +test/js/third_party/jsonwebtoken/issue_147.test.js +test/js/third_party/jsonwebtoken/issue_304.test.js +test/js/third_party/jsonwebtoken/issue_70.test.js +test/js/third_party/jsonwebtoken/jwt.asymmetric_signing.test.js +test/js/third_party/jsonwebtoken/jwt.hs.test.js +test/js/third_party/jsonwebtoken/jwt.malicious.test.js +test/js/third_party/jsonwebtoken/noTimestamp.test.js +test/js/third_party/jsonwebtoken/non_object_values.test.js +test/js/third_party/jsonwebtoken/option-complete.test.js +test/js/third_party/jsonwebtoken/option-maxAge.test.js +test/js/third_party/jsonwebtoken/option-nonce.test.js +test/js/third_party/jsonwebtoken/rsa-public-key.test.js +test/js/third_party/jsonwebtoken/schema.test.js +test/js/third_party/jsonwebtoken/set_headers.test.js +test/js/third_party/jsonwebtoken/undefined_secretOrPublickey.test.js +test/js/third_party/jsonwebtoken/validateAsymmetricKey.test.js +test/js/third_party/jsonwebtoken/verify.test.js +test/js/third_party/jsonwebtoken/wrong_alg.test.js +test/js/third_party/mongodb/mongodb.test.ts +test/js/third_party/msw/msw.test.ts +test/js/third_party/next-auth/next-auth.test.ts +test/js/third_party/nodemailer/nodemailer.test.ts +test/js/third_party/pg-gateway/pglite.test.ts +test/js/third_party/pg/pg.test.ts +test/js/third_party/pino/pino.test.js +test/js/third_party/pnpm/pnpm.test.ts +test/js/third_party/postgres/postgres.test.ts +test/js/third_party/prisma/prisma.test.ts +test/js/third_party/prompts/prompts.test.ts +test/js/third_party/remix/remix.test.ts +test/js/third_party/resvg/bbox.test.js +test/js/third_party/rollup-v4/rollup-v4.test.ts +test/js/third_party/socket.io/socket.io-close.test.ts +test/js/third_party/socket.io/socket.io-connection-state-recovery.test.ts +test/js/third_party/socket.io/socket.io-handshake.test.ts +test/js/third_party/socket.io/socket.io-messaging-many.test.ts +test/js/third_party/socket.io/socket.io-middleware.test.ts +test/js/third_party/socket.io/socket.io-namespaces.test.ts +test/js/third_party/socket.io/socket.io-server-attachment.test.ts +test/js/third_party/socket.io/socket.io-socket-middleware.test.ts +test/js/third_party/socket.io/socket.io-socket-timeout.test.ts +test/js/third_party/socket.io/socket.io-utility-methods.test.ts +test/js/third_party/socket.io/socket.io.test.ts +test/js/third_party/solc/solc.test.ts +test/js/third_party/st/st.test.ts +test/js/third_party/stripe/stripe.test.ts +test/js/third_party/svelte/svelte.test.ts +test/js/third_party/webpack/webpack.test.ts +test/js/third_party/yargs/yargs-cjs.test.js +test/js/valkey/integration/complex-operations.test.ts +test/js/valkey/reliability/connection-failures.test.ts +test/js/valkey/reliability/error-handling.test.ts +test/js/valkey/reliability/protocol-handling.test.ts +test/js/valkey/unit/basic-operations.test.ts +test/js/valkey/unit/buffer-operations.test.ts +test/js/valkey/unit/hash-operations.test.ts +test/js/valkey/unit/list-operations.test.ts +test/js/valkey/unit/ping.test.ts +test/js/valkey/unit/set-operations.test.ts +test/js/valkey/valkey.test.ts +test/js/web/abort/abort.test.ts +test/js/web/broadcastchannel/broadcast-channel.test.ts +test/js/web/console/console-log-utf16.test.ts +test/js/web/console/console-log.test.ts +test/js/web/console/console-recursive.test.ts +test/js/web/console/console-timeLog.test.ts +test/js/web/crypto/web-crypto.test.ts +test/js/web/encoding/encode-bad-chunks.test.ts +test/js/web/encoding/text-decoder-stream.test.ts +test/js/web/encoding/text-decoder.test.js +test/js/web/encoding/text-encoder-stream.test.ts +test/js/web/encoding/text-encoder.test.js +test/js/web/explicit-resource-management.test.ts +test/js/web/fetch/abort-signal-leak.test.ts +test/js/web/fetch/blob-cow.test.ts +test/js/web/fetch/blob-oom.test.ts +test/js/web/fetch/blob.test.ts +test/js/web/fetch/body-clone.test.ts +test/js/web/fetch/body-mixin-errors.test.ts +test/js/web/fetch/body-stream-excess.test.ts +test/js/web/fetch/body-stream.test.ts +test/js/web/fetch/body.test.ts +test/js/web/fetch/chunked-trailing.test.js +test/js/web/fetch/client-fetch.test.ts +test/js/web/fetch/content-length.test.js +test/js/web/fetch/cookies.test.ts +test/js/web/fetch/encoding.test.ts +test/js/web/fetch/exiting.test.ts +test/js/web/fetch/fetch-args.test.ts +test/js/web/fetch/fetch-connection-header.test.ts +test/js/web/fetch/fetch-gzip.test.ts +test/js/web/fetch/fetch-keepalive.test.ts +test/js/web/fetch/fetch-leak.test.ts +test/js/web/fetch/fetch-preconnect.test.ts +test/js/web/fetch/fetch-redirect.test.ts +test/js/web/fetch/fetch-tcp-stress.test.ts +test/js/web/fetch/fetch-url-after-redirect.test.ts +test/js/web/fetch/fetch.brotli.test.ts +test/js/web/fetch/fetch.stream.test.ts +test/js/web/fetch/fetch.test.ts +test/js/web/fetch/fetch.tls.test.ts +test/js/web/fetch/fetch.unix.test.ts +test/js/web/fetch/fetch_headers.test.js +test/js/web/fetch/headers-case.test.ts +test/js/web/fetch/headers.test.ts +test/js/web/fetch/headers.undici.test.ts +test/js/web/fetch/response.test.ts +test/js/web/fetch/stream-fast-path.test.ts +test/js/web/fetch/utf8-bom.test.ts +test/js/web/html/FormData.test.ts +test/js/web/html/URLSearchParams.test.ts +test/js/web/html/html-rewriter-doctype.test.ts +test/js/web/nationalized.test.ts +test/js/web/request/request-clone-leak.test.ts +test/js/web/request/request-method-getter.test.ts +test/js/web/request/request-subclass.test.ts +test/js/web/request/request.test.ts +test/js/web/streams/streams-leak.test.ts +test/js/web/streams/streams.test.js +test/js/web/timers/microtask.test.js +test/js/web/timers/performance-entries.test.ts +test/js/web/timers/performance.test.js +test/js/web/timers/setImmediate.test.js +test/js/web/timers/setImmediate2.test.ts +test/js/web/timers/setInterval.test.js +test/js/web/timers/setTimeout.test.js +test/js/web/url/url.test.ts +test/js/web/url/url.windows.test.js +test/js/web/util/atob.test.js +test/js/web/web-globals.test.js +test/js/web/websocket/autobahn.test.ts +test/js/web/websocket/error-event.test.ts +test/js/web/websocket/websocket-client-short-read.test.ts +test/js/web/websocket/websocket-client.test.ts +test/js/web/websocket/websocket-permessage-deflate-edge-cases.test.ts +test/js/web/websocket/websocket-permessage-deflate-simple.test.ts +test/js/web/websocket/websocket-permessage-deflate.test.ts +test/js/web/websocket/websocket-upgrade.test.ts +test/js/web/websocket/websocket.test.js +test/js/web/workers/message-channel.test.ts +test/js/web/workers/message-event.test.ts +test/js/web/workers/structured-clone.test.ts +test/js/web/workers/worker.test.ts +test/js/web/workers/worker_blob.test.ts +test/js/workerd/html-rewriter.test.js +test/napi/napi-value-ffi.test.ts +test/napi/napi.test.ts +test/napi/node-napi.test.ts +test/napi/uv.test.ts +test/napi/uv_stub.test.ts +test/package-json-lint.test.ts +test/regression/issue/00631.test.ts +test/regression/issue/012039.test.ts +test/regression/issue/012040.test.ts +test/regression/issue/012360.test.ts +test/regression/issue/013880.test.ts +test/regression/issue/014187.test.ts +test/regression/issue/01466.test.ts +test/regression/issue/014865.test.ts +test/regression/issue/015201.test.ts +test/regression/issue/02005.test.ts +test/regression/issue/02367.test.ts +test/regression/issue/02368.test.ts +test/regression/issue/02369.test.ts +test/regression/issue/02499/02499.test.ts +test/regression/issue/03091.test.ts +test/regression/issue/03216.test.ts +test/regression/issue/03830.test.ts +test/regression/issue/03844/03844.test.ts +test/regression/issue/04011.test.ts +test/regression/issue/04298/04298.test.ts +test/regression/issue/04893.test.ts +test/regression/issue/04947.test.js +test/regression/issue/06443.test.ts +test/regression/issue/06467.test.ts +test/regression/issue/06946/06946.test.ts +test/regression/issue/07001.test.ts +test/regression/issue/07261.test.ts +test/regression/issue/07263.test.ts +test/regression/issue/07324.test.ts +test/regression/issue/07397.test.ts +test/regression/issue/07500/07500.test.ts +test/regression/issue/07736.test.ts +test/regression/issue/07740.test.ts +test/regression/issue/07827.test.ts +test/regression/issue/07917/7917.test.ts +test/regression/issue/08040.test.ts +test/regression/issue/08093.test.ts +test/regression/issue/08095.test.ts +test/regression/issue/08757.test.ts +test/regression/issue/08794.test.ts +test/regression/issue/08964/08964.test.ts +test/regression/issue/08965/08965.test.ts +test/regression/issue/09041.test.ts +test/regression/issue/09279.test.ts +test/regression/issue/09340.test.ts +test/regression/issue/09469.test.ts +test/regression/issue/09555.test.ts +test/regression/issue/09559.test.ts +test/regression/issue/09563/09563.test.ts +test/regression/issue/09739.test.ts +test/regression/issue/09748.test.ts +test/regression/issue/09778.test.ts +test/regression/issue/10132.test.ts +test/regression/issue/10139.test.ts +test/regression/issue/10170.test.ts +test/regression/issue/10887.test.ts +test/regression/issue/11297/11297.test.ts +test/regression/issue/11664.test.ts +test/regression/issue/11677.test.ts +test/regression/issue/11806.test.ts +test/regression/issue/11866.test.ts +test/regression/issue/12034/12034.test.js +test/regression/issue/12650.test.js +test/regression/issue/12910/12910.test.ts +test/regression/issue/14029.test.ts +test/regression/issue/14477/14477.test.ts +test/regression/issue/14515.test.tsx +test/regression/issue/14945-lifecycle-script-crash.test.ts +test/regression/issue/14976/14976.test.ts +test/regression/issue/14982/14982.test.ts +test/regression/issue/15276.test.ts +test/regression/issue/15314.test.ts +test/regression/issue/15326.test.ts +test/regression/issue/16007.test.ts +test/regression/issue/16312.test.ts +test/regression/issue/16474.test.ts +test/regression/issue/16476/16476.test.ts +test/regression/issue/16702/16702.test.ts +test/regression/issue/17605.test.ts +test/regression/issue/17766.test.ts +test/regression/issue/18159/18159.test.ts +test/regression/issue/18239/18239.test.ts +test/regression/issue/18547.test.ts +test/regression/issue/18595.test.ts +test/regression/issue/19661.test.ts +test/regression/issue/19850/19850.test.ts +test/regression/issue/20144/20144.test.ts +test/regression/issue/20753.test.js +test/regression/issue/crypto-names.test.ts +test/regression/issue/css-system-color-contexts.test.ts +test/regression/issue/css-system-color-mix-crash.test.ts +test/regression/issue/ctrl-c.test.ts +test/regression/issue/pe-codesigning-integrity.test.ts +test/regression/issue/s3-signature-order.test.ts +test/regression/issue/s3-signature-performance.test.ts +test/regression/issue/test-21049.test.ts +test/regression/issue/update-interactive-formatting.test.ts +test/snippets/segfault-todo.test.js +test/v8/v8.test.ts +vendor/elysia/test/a.test.ts +vendor/elysia/test/tracer/timing.test.ts +vendor/elysia/test/tracer/trace.test.ts +vendor/elysia/test/tracer/detail.test.ts +vendor/elysia/test/tracer/aot.test.ts +vendor/elysia/test/sucrose/query.test.ts +vendor/elysia/test/sucrose/extract-main-parameter.test.ts +vendor/elysia/test/sucrose/sucrose.test.ts +vendor/elysia/test/sucrose/remove-default-parameter.test.ts +vendor/elysia/test/sucrose/find-alias.test.ts +vendor/elysia/test/sucrose/infer-body-reference.test.ts +vendor/elysia/test/sucrose/retrieve-root-parameters.test.ts +vendor/elysia/test/sucrose/bracket-pair-range-reverse.test.ts +vendor/elysia/test/sucrose/remove-colon-alias.test.ts +vendor/elysia/test/sucrose/separate-function.test.ts +vendor/elysia/test/sucrose/bracket-pair-range.test.ts +vendor/elysia/test/extends/store.test.ts +vendor/elysia/test/extends/decorators.test.ts +vendor/elysia/test/extends/models.test.ts +vendor/elysia/test/extends/error.test.ts +vendor/elysia/test/hoc/index.test.ts +vendor/elysia/test/core/sanitize.test.ts +vendor/elysia/test/core/path.test.ts +vendor/elysia/test/core/mount.test.ts +vendor/elysia/test/core/redirect.test.ts +vendor/elysia/test/core/as.test.ts +vendor/elysia/test/core/normalize.test.ts +vendor/elysia/test/core/context.test.ts +vendor/elysia/test/core/native-static.test.ts +vendor/elysia/test/core/modules.test.ts +vendor/elysia/test/core/elysia.test.ts +vendor/elysia/test/core/handle-error.test.ts +vendor/elysia/test/core/dynamic.test.ts +vendor/elysia/test/core/compose.test.ts +vendor/elysia/test/core/config.test.ts +vendor/elysia/test/core/stop.test.ts +vendor/elysia/test/core/formdata.test.ts +vendor/elysia/test/validator/query.test.ts +vendor/elysia/test/validator/header.test.ts +vendor/elysia/test/validator/standalone.test.ts +vendor/elysia/test/validator/body.test.ts +vendor/elysia/test/validator/response.test.ts +vendor/elysia/test/validator/exact-mirror.test.ts +vendor/elysia/test/validator/validator.test.ts +vendor/elysia/test/validator/params.test.ts +vendor/elysia/test/validator/encode.test.ts +vendor/elysia/test/response/static.test.ts +vendor/elysia/test/response/headers.test.ts +vendor/elysia/test/response/redirect.test.ts +vendor/elysia/test/response/custom-response.test.ts +vendor/elysia/test/response/stream.test.ts +vendor/elysia/test/plugins/checksum.test.ts +vendor/elysia/test/plugins/affix.test.ts +vendor/elysia/test/plugins/plugin.test.ts +vendor/elysia/test/plugins/error-propagation.test.ts +vendor/elysia/test/path/path.test.ts +vendor/elysia/test/path/group.test.ts +vendor/elysia/test/path/guard.test.ts +vendor/elysia/test/type-system/boolean-string.test.ts +vendor/elysia/test/type-system/array-string.test.ts +vendor/elysia/test/type-system/form.test.ts +vendor/elysia/test/type-system/coercion-number.test.ts +vendor/elysia/test/type-system/object-string.test.ts +vendor/elysia/test/type-system/date.test.ts +vendor/elysia/test/type-system/string-format.test.ts +vendor/elysia/test/type-system/union-enum.test.ts +vendor/elysia/test/lifecycle/transform.test.ts +vendor/elysia/test/lifecycle/map-derive.test.ts +vendor/elysia/test/lifecycle/hook-types.test.ts +vendor/elysia/test/lifecycle/derive.test.ts +vendor/elysia/test/lifecycle/parser.test.ts +vendor/elysia/test/lifecycle/map-response.test.ts +vendor/elysia/test/lifecycle/request.test.ts +vendor/elysia/test/lifecycle/response.test.ts +vendor/elysia/test/lifecycle/map-resolve.test.ts +vendor/elysia/test/lifecycle/resolve.test.ts +vendor/elysia/test/lifecycle/error.test.ts +vendor/elysia/test/lifecycle/before-handle.test.ts +vendor/elysia/test/lifecycle/after-handle.test.ts +vendor/elysia/test/bun/router.test.ts +vendor/elysia/test/units/has-transform.test.ts +vendor/elysia/test/units/numeric.test.ts +vendor/elysia/test/units/class-to-object.test.ts +vendor/elysia/test/units/replace-schema-type.test.ts +vendor/elysia/test/units/deduplicate-checksum.test.ts +vendor/elysia/test/units/has-ref.test.ts +vendor/elysia/test/units/merge-deep.test.ts +vendor/elysia/test/units/merge-object-schemas.test.ts +vendor/elysia/test/macro/macro.test.ts +vendor/elysia/test/production/index.test.ts +vendor/elysia/test/cookie/explicit.test.ts +vendor/elysia/test/cookie/response.test.ts +vendor/elysia/test/cookie/implicit.test.ts +vendor/elysia/test/cookie/signature.test.ts +vendor/elysia/test/aot/has-transform.test.ts +vendor/elysia/test/aot/response.test.ts +vendor/elysia/test/aot/generation.test.ts +vendor/elysia/test/aot/analysis.test.ts +vendor/elysia/test/aot/has-type.test.ts +vendor/elysia/test/ws/destructuring.test.ts +vendor/elysia/test/ws/message.test.ts +vendor/elysia/test/ws/connection.test.ts +vendor/elysia/test/ws/aot.test.ts +vendor/elysia/test/adapter/web-standard/map-compact-response.test.ts +vendor/elysia/test/adapter/web-standard/map-response.test.ts +vendor/elysia/test/adapter/web-standard/cookie-to-header.test.ts +vendor/elysia/test/adapter/web-standard/set-cookie.test.ts +vendor/elysia/test/adapter/web-standard/map-early-response.test.ts From e8e6558471ffcbbbe62151d77600a593c9b99657 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 17 Jul 2025 16:49:12 -0700 Subject: [PATCH 02/60] put local dev behind a flag --- scripts/runner.node.mjs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 471598edee3..c3aa31ab8eb 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -153,6 +153,10 @@ const { values: options, positionals: filters } = parseArgs({ type: "boolean", default: isBuildkite && isLinux, }, + ["leaksan"]: { + type: "boolean", + default: false, // turn this true when more passes + }, }, }); @@ -469,7 +473,7 @@ async function runTests() { if ((basename(execPath).includes("asan") || !isCI) && shouldValidateExceptions(testPath)) { env.BUN_JSC_validateExceptionChecks = "1"; } - if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { + if ((basename(execPath).includes("asan") || (!isCI && options["leaksan"])) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; } @@ -1045,17 +1049,17 @@ async function spawnBun(execPath, { args, cwd, timeout, env, stdout, stderr }) { * * @param {string} execPath * @param {string} testPath - * @param {object} [options] - * @param {string} [options.cwd] - * @param {string[]} [options.args] + * @param {object} [opts] + * @param {string} [opts.cwd] + * @param {string[]} [opts.args] * @returns {Promise} */ -async function spawnBunTest(execPath, testPath, options = { cwd }) { +async function spawnBunTest(execPath, testPath, opts = { cwd }) { const timeout = getTestTimeout(testPath); const perTestTimeout = Math.ceil(timeout / 2); - const absPath = join(options["cwd"], testPath); + const absPath = join(opts["cwd"], testPath); const isReallyTest = isTestStrict(testPath) || absPath.includes("vendor"); - const args = options["args"] ?? []; + const args = opts["args"] ?? []; const testArgs = ["test", ...args, `--timeout=${perTestTimeout}`]; @@ -1085,14 +1089,14 @@ async function spawnBunTest(execPath, testPath, options = { cwd }) { if ((basename(execPath).includes("asan") || !isCI) && shouldValidateExceptions(relative(cwd, absPath))) { env.BUN_JSC_validateExceptionChecks = "1"; } - if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { + if ((basename(execPath).includes("asan") || (!isCI && options["leaksan"])) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; } const { ok, error, stdout } = await spawnBun(execPath, { args: isReallyTest ? testArgs : [...args, absPath], - cwd: options["cwd"], + cwd: opts["cwd"], timeout: isReallyTest ? timeout : 30_000, env, stdout: chunk => pipeTestStdout(process.stdout, chunk), From 8d4cf9b317a607533954e9d542adfc6b1b74d5c6 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 21 Jul 2025 15:18:39 -0700 Subject: [PATCH 03/60] better name for arrays --- scripts/runner.node.mjs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index c3aa31ab8eb..f86c1e01362 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -241,7 +241,7 @@ function getTestExpectations() { return expectations; } -const skipArray = (() => { +const skipsForExceptionValidation = (() => { const path = join(cwd, "test/no-validate-exceptions.txt"); if (!existsSync(path)) { return []; @@ -251,7 +251,7 @@ const skipArray = (() => { .filter(line => !line.startsWith("#") && line.length > 0); })(); -const skipArrayLeaks = (() => { +const skipsForLeaksan = (() => { const path = join(cwd, "test/no-validate-leaksan.txt"); if (!existsSync(path)) { return []; @@ -267,7 +267,7 @@ const skipArrayLeaks = (() => { * @returns {boolean} */ const shouldValidateExceptions = test => { - return !(skipArray.includes(test) || skipArray.includes("test/" + test)); + return !(skipsForExceptionValidation.includes(test) || skipsForExceptionValidation.includes("test/" + test)); }; /** @@ -276,7 +276,7 @@ const shouldValidateExceptions = test => { * @returns {boolean} */ const shouldValidateLeakSan = test => { - return !(skipArrayLeaks.includes(test) || skipArrayLeaks.includes("test/" + test)); + return !(skipsForLeaksan.includes(test) || skipsForLeaksan.includes("test/" + test)); }; /** From f3fa3ebce5422e94377c790a480d11039f52a71a Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 11 Sep 2025 15:37:01 -0700 Subject: [PATCH 04/60] pass an empty file --- scripts/runner.node.mjs | 2 ++ scripts/utils.mjs | 1 + src/allocators.zig | 33 +++++++++++++++++++ src/bun.js/VirtualMachine.zig | 3 +- src/bun.js/bindings/BunProcess.cpp | 1 - src/bun.js/bindings/BunString.cpp | 9 +++-- .../bindings/InternalModuleRegistry.cpp | 4 +-- src/bun.js/bindings/JSBuffer.cpp | 6 ++-- src/bun.js/bindings/ProcessBindingTTYWrap.cpp | 1 - src/bun.js/bindings/bindings.cpp | 7 ++-- src/bun.js/bindings/headers-handwritten.h | 4 +-- .../GarbageCollectionController.zig | 5 +++ src/cli/test_command.zig | 7 ++-- src/defines.zig | 9 +++++ src/fs.zig | 5 +++ src/http/HTTPThread.zig | 2 ++ src/interchange/json.zig | 1 + src/options.zig | 4 +++ src/ptr/CowSlice.zig | 1 + src/resolver/dir_info.zig | 6 ++++ src/resolver/package_json.zig | 1 + src/resolver/resolver.zig | 5 +++ src/resolver/tsconfig_json.zig | 6 +++- src/transpiler.zig | 7 ++++ test/cli/install/bun-install-registry.test.ts | 2 -- test/leaksan.supp | 14 ++++++++ 26 files changed, 124 insertions(+), 22 deletions(-) create mode 100644 test/leaksan.supp diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index d7970bcd8ef..946ddf240c2 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -596,6 +596,7 @@ async function runTests() { ) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; + env["LSAN_OPTIONS"] = "suppressions=test/leaksan.supp"; } return runTest(title, async () => { const { ok, error, stdout, crashes } = await spawnBun(execPath, { @@ -1324,6 +1325,7 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { if ((basename(execPath).includes("asan") || (!isCI && options["leaksan"])) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; + env["LSAN_OPTIONS"] = "suppressions=test/leaksan.supp"; } const { ok, error, stdout, crashes } = await spawnBun(execPath, { diff --git a/scripts/utils.mjs b/scripts/utils.mjs index 3f7ea677579..7e8705673b1 100755 --- a/scripts/utils.mjs +++ b/scripts/utils.mjs @@ -2808,6 +2808,7 @@ export function endGroup() { } else { console.groupEnd(); } + console.log(); } export function printEnvironment() { diff --git a/src/allocators.zig b/src/allocators.zig index ccc1d09ac6d..a4d0992a75c 100644 --- a/src/allocators.zig +++ b/src/allocators.zig @@ -229,6 +229,11 @@ pub fn BSSList(comptime ValueType: type, comptime _count: anytype) type { this.data[index] = item; return &this.data[index]; } + + pub fn deinit(this: *OverflowBlock) void { + if (this.prev) |p| p.deinit(); + bun.default_allocator.destroy(this); + } }; const Self = @This(); @@ -264,6 +269,12 @@ pub fn BSSList(comptime ValueType: type, comptime _count: anytype) type { return instance; } + pub fn deinit(self: *Self) void { + self.head.deinit(); + bun.default_allocator.destroy(instance); + loaded = false; + } + pub fn isOverflowing() bool { return instance.used >= @as(u16, count); } @@ -350,6 +361,12 @@ pub fn BSSStringList(comptime _count: usize, comptime _item_length: usize) type return instance; } + pub fn deinit(self: *const Self) void { + _ = self; + bun.default_allocator.destroy(instance); + loaded = false; + } + pub inline fn isOverflowing() bool { return instance.slice_buf_used >= @as(u16, count); } @@ -530,6 +547,12 @@ pub fn BSSMap(comptime ValueType: type, comptime count: anytype, comptime store_ return instance; } + pub fn deinit(self: *Self) void { + self.index.deinit(self.allocator); + bun.default_allocator.destroy(instance); + loaded = false; + } + pub fn isOverflowing() bool { return instance.backing_buf_used >= @as(u16, count); } @@ -653,6 +676,10 @@ pub fn BSSMap(comptime ValueType: type, comptime count: anytype, comptime store_ // } } + + pub fn values(self: *Self) []ValueType { + return (&self.backing_buf)[0..self.backing_buf_used]; + } }; if (!store_keys) { return BSSMapType; @@ -684,6 +711,12 @@ pub fn BSSMap(comptime ValueType: type, comptime count: anytype, comptime store_ return instance; } + pub fn deinit(self: *Self) void { + self.map.deinit(); + bun.default_allocator.destroy(instance); + instance_loaded = false; + } + pub fn isOverflowing() bool { return instance.map.backing_buf_used >= count; } diff --git a/src/bun.js/VirtualMachine.zig b/src/bun.js/VirtualMachine.zig index a859c208f29..573c95b84ad 100644 --- a/src/bun.js/VirtualMachine.zig +++ b/src/bun.js/VirtualMachine.zig @@ -1915,9 +1915,10 @@ pub fn processFetchLog(globalThis: *JSGlobalObject, specifier: bun.String, refer } } -// TODO: pub fn deinit(this: *VirtualMachine) void { this.auto_killer.deinit(); + this.transpiler.deinit(); + this.gc_controller.deinit(); if (source_code_printer) |print| { print.getMutableBuffer().deinit(); diff --git a/src/bun.js/bindings/BunProcess.cpp b/src/bun.js/bindings/BunProcess.cpp index 897bb772821..0947d61ff1a 100644 --- a/src/bun.js/bindings/BunProcess.cpp +++ b/src/bun.js/bindings/BunProcess.cpp @@ -69,7 +69,6 @@ #include #include #include -#include #else #include #include diff --git a/src/bun.js/bindings/BunString.cpp b/src/bun.js/bindings/BunString.cpp index 9e399feffb4..2ee12580aca 100644 --- a/src/bun.js/bindings/BunString.cpp +++ b/src/bun.js/bindings/BunString.cpp @@ -14,6 +14,7 @@ #include "DOMURL.h" #include "ZigGlobalObject.h" #include "IDLTypes.h" +#include "mimalloc.h" #include #include @@ -40,8 +41,6 @@ #include "wtf/text/StringImpl.h" #include "wtf/text/StringToIntegerConversion.h" -extern "C" void mi_free(void* ptr); - using namespace JSC; extern "C" BunString BunString__fromBytes(const char* bytes, size_t length); @@ -169,7 +168,11 @@ JSC::JSString* toJS(JSC::JSGlobalObject* globalObject, BunString bunString) return JSC::jsString(globalObject->vm(), Zig::toStringStatic(bunString.impl.zig)); } - return Zig::toJSStringGC(bunString.impl.zig, globalObject); + if (bunString.tag == BunStringTag::ZigString) { + return Zig::toJSStringGC(bunString.impl.zig, globalObject); + } + + UNREACHABLE(); } BunString toString(const char* bytes, size_t length) diff --git a/src/bun.js/bindings/InternalModuleRegistry.cpp b/src/bun.js/bindings/InternalModuleRegistry.cpp index 5633d2f92ce..bbb8f70f27f 100644 --- a/src/bun.js/bindings/InternalModuleRegistry.cpp +++ b/src/bun.js/bindings/InternalModuleRegistry.cpp @@ -104,10 +104,10 @@ JSValue initializeInternalModuleFromDisk( JSGlobalObject* globalObject, VM& vm, const WTF::String& moduleName, - WTF::String fileBase, + const WTF::String& fileBase, const WTF::String& urlString) { - WTF::String file = makeString(ASCIILiteral::fromLiteralUnsafe(BUN_DYNAMIC_JS_LOAD_PATH), "/"_s, WTFMove(fileBase)); + WTF::String file = makeString(ASCIILiteral::fromLiteralUnsafe(BUN_DYNAMIC_JS_LOAD_PATH), "/"_s, fileBase); if (auto contents = WTF::FileSystemImpl::readEntireFile(file)) { auto string = WTF::String::fromUTF8(contents.value()); return generateModule(globalObject, vm, string, moduleName, urlString); diff --git a/src/bun.js/bindings/JSBuffer.cpp b/src/bun.js/bindings/JSBuffer.cpp index 10b8722e826..67c9b74eed3 100644 --- a/src/bun.js/bindings/JSBuffer.cpp +++ b/src/bun.js/bindings/JSBuffer.cpp @@ -348,9 +348,9 @@ JSC::EncodedJSValue JSBuffer__bufferFromPointerAndLengthAndDeinit(JSC::JSGlobalO auto scope = DECLARE_CATCH_SCOPE(lexicalGlobalObject->vm()); if (length > 0) [[likely]] { - auto buffer = ArrayBuffer::createFromBytes({ reinterpret_cast(ptr), length }, createSharedTask([ctx, bytesDeallocator](void* p) { - if (bytesDeallocator) - bytesDeallocator(p, ctx); + ASSERT(bytesDeallocator); + auto buffer = ArrayBuffer::createFromBytes({ reinterpret_cast(ptr), length }, createSharedTask([=](void* p) { + bytesDeallocator(p, NULL); })); uint8Array = JSC::JSUint8Array::create(lexicalGlobalObject, subclassStructure, WTFMove(buffer), 0, length); diff --git a/src/bun.js/bindings/ProcessBindingTTYWrap.cpp b/src/bun.js/bindings/ProcessBindingTTYWrap.cpp index f97aa421039..bd52a53344d 100644 --- a/src/bun.js/bindings/ProcessBindingTTYWrap.cpp +++ b/src/bun.js/bindings/ProcessBindingTTYWrap.cpp @@ -1,4 +1,3 @@ -#include "mimalloc.h" #include "root.h" #include "JavaScriptCore/JSDestructibleObject.h" diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 6d6b5132116..41b166d50a6 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -4597,7 +4597,7 @@ class V8StackTraceIterator { if (openingParentheses > closingParentheses) openingParentheses = WTF::notFound; - if (closingParentheses == WTF::notFound || closingParentheses == WTF::notFound) { + if (openingParentheses == WTF::notFound || closingParentheses == WTF::notFound) { offset = stack.length(); return false; } @@ -5424,7 +5424,10 @@ void JSC__VM__reportExtraMemory(JSC::VM* arg0, size_t arg1) arg0->heap.deprecatedReportExtraMemory(arg1); } -void JSC__VM__deinit(JSC::VM* arg1, JSC::JSGlobalObject* globalObject) {} +void JSC__VM__deinit(JSC::VM* arg1, JSC::JSGlobalObject* globalObject) +{ +} + void JSC__VM__drainMicrotasks(JSC::VM* arg0) { arg0->drainMicrotasks(); diff --git a/src/bun.js/bindings/headers-handwritten.h b/src/bun.js/bindings/headers-handwritten.h index 8d15002abd5..3a3fd4d9181 100644 --- a/src/bun.js/bindings/headers-handwritten.h +++ b/src/bun.js/bindings/headers-handwritten.h @@ -401,8 +401,8 @@ extern "C" size_t Bun__encoding__writeUTF16(const char16_t* ptr, size_t len, uns extern "C" size_t Bun__encoding__byteLengthLatin1AsUTF8(const unsigned char* ptr, size_t len); extern "C" size_t Bun__encoding__byteLengthUTF16AsUTF8(const char16_t* ptr, size_t len); -extern "C" int64_t Bun__encoding__constructFromLatin1(void*, const unsigned char* ptr, size_t len, Encoding encoding); -extern "C" int64_t Bun__encoding__constructFromUTF16(void*, const char16_t* ptr, size_t len, Encoding encoding); +extern "C" JSC::EncodedJSValue Bun__encoding__constructFromLatin1(void*, const unsigned char* ptr, size_t len, Encoding encoding); +extern "C" JSC::EncodedJSValue Bun__encoding__constructFromUTF16(void*, const char16_t* ptr, size_t len, Encoding encoding); extern "C" void Bun__EventLoop__runCallback1(JSC::JSGlobalObject* global, JSC::EncodedJSValue callback, JSC::EncodedJSValue thisValue, JSC::EncodedJSValue arg1); extern "C" void Bun__EventLoop__runCallback2(JSC::JSGlobalObject* global, JSC::EncodedJSValue callback, JSC::EncodedJSValue thisValue, JSC::EncodedJSValue arg1, JSC::EncodedJSValue arg2); diff --git a/src/bun.js/event_loop/GarbageCollectionController.zig b/src/bun.js/event_loop/GarbageCollectionController.zig index fc18a7ac67f..7b2088f93b9 100644 --- a/src/bun.js/event_loop/GarbageCollectionController.zig +++ b/src/bun.js/event_loop/GarbageCollectionController.zig @@ -58,6 +58,11 @@ pub fn init(this: *GarbageCollectionController, vm: *VirtualMachine) void { this.gc_repeating_timer.set(this, onGCRepeatingTimer, gc_timer_interval, gc_timer_interval); } +pub fn deinit(this: *GarbageCollectionController) void { + this.gc_timer.deinit(true); + this.gc_repeating_timer.deinit(true); +} + pub fn scheduleGCTimer(this: *GarbageCollectionController) void { this.gc_timer_state = .scheduled; this.gc_timer.set(this, onGCTimer, 16, 0); diff --git a/src/cli/test_command.zig b/src/cli/test_command.zig index 0b5acf03aac..143ce73396b 100644 --- a/src/cli/test_command.zig +++ b/src/cli/test_command.zig @@ -1735,12 +1735,11 @@ pub const TestCommand = struct { const summary = reporter.summary(); if (failed_to_find_any_tests or summary.didLabelFilterOutAllTests() or summary.fail > 0 or (coverage_options.enabled and coverage_options.fractions.failing and coverage_options.fail_on_low_coverage) or !write_snapshots_success) { - Global.exit(1); + vm.exit_handler.exit_code = 1; } else if (reporter.jest.unhandled_errors_between_tests > 0) { - Global.exit(reporter.jest.unhandled_errors_between_tests); - } else { - vm.runWithAPILock(jsc.VirtualMachine, vm, jsc.VirtualMachine.globalExit); + vm.exit_handler.exit_code = 1; } + vm.runWithAPILock(jsc.VirtualMachine, vm, jsc.VirtualMachine.globalExit); } fn runEventLoopForWatch(vm: *jsc.VirtualMachine) void { diff --git a/src/defines.zig b/src/defines.zig index b86b4842aa8..9de1820517d 100644 --- a/src/defines.zig +++ b/src/defines.zig @@ -329,6 +329,7 @@ pub const Define = struct { .data = value_define.*, }); + define.allocator.free(gpe.value_ptr.*); gpe.value_ptr.* = try list.toOwnedSlice(); } else { var list = try std.ArrayList(DotDefine).initCapacity(allocator, 1); @@ -399,6 +400,14 @@ pub const Define = struct { return define; } + + pub fn deinit(this: *Define) void { + var diter = this.dots.valueIterator(); + while (diter.next()) |key| this.allocator.free(key.*); + this.dots.clearAndFree(); + this.identifiers.clearAndFree(); + this.allocator.destroy(this); + } }; const string = []const u8; diff --git a/src/fs.zig b/src/fs.zig index 7b85e2a2110..a26d91c9da3 100644 --- a/src/fs.zig +++ b/src/fs.zig @@ -108,6 +108,11 @@ pub const FileSystem = struct { return &instance; } + pub fn deinit(this: *const FileSystem) void { + this.dirname_store.deinit(); + this.filename_store.deinit(); + } + pub const DirEntry = struct { pub const EntryMap = bun.StringHashMapUnmanaged(*Entry); pub const EntryStore = allocators.BSSList(Entry, Preallocate.Counts.files); diff --git a/src/http/HTTPThread.zig b/src/http/HTTPThread.zig index d6946798e8d..78ea20fce83 100644 --- a/src/http/HTTPThread.zig +++ b/src/http/HTTPThread.zig @@ -209,7 +209,9 @@ pub fn onStart(opts: InitOpts) void { bun.http.http_thread.loop = loop; bun.http.http_thread.http_context.init(); + defer bun.http.http_thread.http_context.deinit(); bun.http.http_thread.https_context.initWithThreadOpts(&opts) catch |err| opts.onInitError(err, opts); + defer bun.http.http_thread.https_context.deinit(); bun.http.http_thread.has_awoken.store(true, .monotonic); bun.http.http_thread.processEvents(); } diff --git a/src/interchange/json.zig b/src/interchange/json.zig index bec03a2501a..b2ab0726ad9 100644 --- a/src/interchange/json.zig +++ b/src/interchange/json.zig @@ -170,6 +170,7 @@ fn JSONLikeParser_( try p.lexer.next(); var is_single_line = !p.lexer.has_newline_before; var exprs = std.ArrayList(Expr).init(p.list_allocator); + errdefer exprs.deinit(); while (p.lexer.token != .t_close_bracket) { if (exprs.items.len > 0) { diff --git a/src/options.zig b/src/options.zig index fff5c215010..b7639e2d840 100644 --- a/src/options.zig +++ b/src/options.zig @@ -1899,6 +1899,10 @@ pub const BundleOptions = struct { this.defines_loaded = true; } + pub fn deinit(this: *const BundleOptions) void { + this.define.deinit(); + } + pub fn loader(this: *const BundleOptions, ext: string) Loader { return this.loaders.get(ext) orelse .file; } diff --git a/src/ptr/CowSlice.zig b/src/ptr/CowSlice.zig index c0ee935ee51..ce7627eed49 100644 --- a/src/ptr/CowSlice.zig +++ b/src/ptr/CowSlice.zig @@ -143,6 +143,7 @@ pub fn CowSliceZ(T: type, comptime sentinel: ?T) type { try str.intoOwned(allocator); } defer str.* = Self.empty; + defer if (cow_str_assertions and str.isOwned()) if (str.debug) |d| bun.destroy(d); return str.ptr[0..str.flags.len]; } diff --git a/src/resolver/dir_info.zig b/src/resolver/dir_info.zig index d59b2251bd7..bb876c197db 100644 --- a/src/resolver/dir_info.zig +++ b/src/resolver/dir_info.zig @@ -92,10 +92,16 @@ pub fn getEntriesConst(dirinfo: *const DirInfo) ?*const Fs.FileSystem.DirEntry { pub fn getParent(i: *const DirInfo) ?*DirInfo { return HashMap.instance.atIndex(i.parent); } + pub fn getEnclosingBrowserScope(i: *const DirInfo) ?*DirInfo { return HashMap.instance.atIndex(i.enclosing_browser_scope); } +pub fn deinit(i: *const DirInfo) void { + if (i.package_json) |p| p.deinit(); + if (i.tsconfig_json) |t| t.deinit(); +} + // Goal: Really fast, low allocation directory map exploiting cache locality where we don't worry about lifetimes much. // 1. Don't store the keys or values of directories that don't exist // 2. Don't expect a provided key to exist after it's queried diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig index 1ccc071d41a..1a8d8ac9779 100644 --- a/src/resolver/package_json.zig +++ b/src/resolver/package_json.zig @@ -26,6 +26,7 @@ pub const PackageJSON = struct { }; pub const new = bun.TrivialNew(@This()); + pub const deinit = bun.TrivialDeinit(@This()); const node_modules_path = std.fs.path.sep_str ++ "node_modules" ++ std.fs.path.sep_str; diff --git a/src/resolver/resolver.zig b/src/resolver/resolver.zig index 5d067e068d3..283f8b37835 100644 --- a/src/resolver/resolver.zig +++ b/src/resolver/resolver.zig @@ -586,6 +586,11 @@ pub const Resolver = struct { }; } + pub fn deinit(r: *ThisResolver) void { + for (r.dir_cache.values()) |di| di.deinit(); + r.dir_cache.deinit(); + } + pub fn isExternalPattern(r: *ThisResolver, import_path: string) bool { if (r.opts.packages == .external and isPackagePath(import_path)) { return true; diff --git a/src/resolver/tsconfig_json.zig b/src/resolver/tsconfig_json.zig index 39ab047c785..596ace42111 100644 --- a/src/resolver/tsconfig_json.zig +++ b/src/resolver/tsconfig_json.zig @@ -11,7 +11,6 @@ const JSXFieldSet = FlagSet(options.JSX.Pragma); pub const TSConfigJSON = struct { pub const new = bun.TrivialNew(@This()); - pub const deinit = bun.TrivialDeinit(@This()); abs_path: string, @@ -492,6 +491,11 @@ pub const TSConfigJSON = struct { log.addRangeWarningFmt(source, r, allocator, "Non-relative path \"{s}\" is not allowed when \"baseUrl\" is not set (did you forget a leading \"./\"?)", .{text}) catch {}; return false; } + + pub fn deinit(this: *TSConfigJSON) void { + this.paths.deinit(); + bun.destroy(this); + } }; const string = []const u8; diff --git a/src/transpiler.zig b/src/transpiler.zig index 2f020eeac82..0688a112fb6 100644 --- a/src/transpiler.zig +++ b/src/transpiler.zig @@ -437,6 +437,13 @@ pub const Transpiler = struct { }; } + pub fn deinit(this: *Transpiler) void { + this.options.deinit(); + this.log.deinit(); + this.resolver.deinit(); + this.fs.deinit(); + } + pub fn configureLinkerWithAutoJSX(transpiler: *Transpiler, auto_jsx: bool) void { transpiler.linker = Linker.init( transpiler.allocator, diff --git a/test/cli/install/bun-install-registry.test.ts b/test/cli/install/bun-install-registry.test.ts index 05b9823d86e..b84b8c72605 100644 --- a/test/cli/install/bun-install-registry.test.ts +++ b/test/cli/install/bun-install-registry.test.ts @@ -26,8 +26,6 @@ import { } from "harness"; import { join, resolve } from "path"; const { parseLockfile } = install_test_helpers; -const { iniInternals } = require("bun:internal-for-testing"); -const { loadNpmrc } = iniInternals; expect.extend({ toBeValidBin, diff --git a/test/leaksan.supp b/test/leaksan.supp new file mode 100644 index 00000000000..e03afa0447e --- /dev/null +++ b/test/leaksan.supp @@ -0,0 +1,14 @@ +leak:bunfig.Bunfig.parse__anon +leak:resolver.package_json.PackageJSON.parse__anon +leak:resolver.resolver.Resolver.parseTSConfig +leak:JSC::Identifier::fromString +leak:Zig__GlobalObject__create +leak:_objc_msgSend_uncached +leak:WTF::fastMalloc +leak:WTF::AutomaticThread::start +leak:CryptoObject__create +leak:Bun__transpileFile +leak:WTF::SymbolRegistry::symbolForKey +leak:js_printer.printAst__anon +leak:Bun__resolveSync +leak:JSC::moduleLoaderParseModule From 36feff7ad1aff6dcc5be7ad846966b51be0e96f4 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 11 Sep 2025 15:43:07 -0700 Subject: [PATCH 05/60] temp: ci: disable non-asan platforms --- .buildkite/ci.mjs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.buildkite/ci.mjs b/.buildkite/ci.mjs index caaf6474289..d2564a0b058 100755 --- a/.buildkite/ci.mjs +++ b/.buildkite/ci.mjs @@ -119,25 +119,25 @@ const buildPlatforms = [ * @type {Platform[]} */ const testPlatforms = [ - { os: "darwin", arch: "aarch64", release: "14", tier: "latest" }, - { os: "darwin", arch: "aarch64", release: "13", tier: "previous" }, - { os: "darwin", arch: "x64", release: "14", tier: "latest" }, - { os: "darwin", arch: "x64", release: "13", tier: "previous" }, - { os: "linux", arch: "aarch64", distro: "debian", release: "12", tier: "latest" }, - { os: "linux", arch: "x64", distro: "debian", release: "12", tier: "latest" }, - { os: "linux", arch: "x64", baseline: true, distro: "debian", release: "12", tier: "latest" }, + // { os: "darwin", arch: "aarch64", release: "14", tier: "latest" }, + // { os: "darwin", arch: "aarch64", release: "13", tier: "previous" }, + // { os: "darwin", arch: "x64", release: "14", tier: "latest" }, + // { os: "darwin", arch: "x64", release: "13", tier: "previous" }, + // { os: "linux", arch: "aarch64", distro: "debian", release: "12", tier: "latest" }, + // { os: "linux", arch: "x64", distro: "debian", release: "12", tier: "latest" }, + // { os: "linux", arch: "x64", baseline: true, distro: "debian", release: "12", tier: "latest" }, { os: "linux", arch: "x64", profile: "asan", distro: "debian", release: "12", tier: "latest" }, - { os: "linux", arch: "aarch64", distro: "ubuntu", release: "25.04", tier: "latest" }, - { os: "linux", arch: "aarch64", distro: "ubuntu", release: "24.04", tier: "latest" }, - { os: "linux", arch: "x64", distro: "ubuntu", release: "25.04", tier: "latest" }, - { os: "linux", arch: "x64", distro: "ubuntu", release: "24.04", tier: "latest" }, - { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "25.04", tier: "latest" }, - { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "24.04", tier: "latest" }, - { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, - { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, - { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.21", tier: "latest" }, - { os: "windows", arch: "x64", release: "2019", tier: "oldest" }, - { os: "windows", arch: "x64", release: "2019", baseline: true, tier: "oldest" }, + // { os: "linux", arch: "aarch64", distro: "ubuntu", release: "25.04", tier: "latest" }, + // { os: "linux", arch: "aarch64", distro: "ubuntu", release: "24.04", tier: "latest" }, + // { os: "linux", arch: "x64", distro: "ubuntu", release: "25.04", tier: "latest" }, + // { os: "linux", arch: "x64", distro: "ubuntu", release: "24.04", tier: "latest" }, + // { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "25.04", tier: "latest" }, + // { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "24.04", tier: "latest" }, + // { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, + // { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, + // { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.21", tier: "latest" }, + // { os: "windows", arch: "x64", release: "2019", tier: "oldest" }, + // { os: "windows", arch: "x64", release: "2019", baseline: true, tier: "oldest" }, ]; /** From 30ff5aaedcad6c9a21a86651265fadf3ba4bb464 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 11 Sep 2025 17:06:45 -0700 Subject: [PATCH 06/60] add this to make the debugger behave better --- misctools/lldb/init.lldb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/misctools/lldb/init.lldb b/misctools/lldb/init.lldb index 7a143342326..777696671f7 100644 --- a/misctools/lldb/init.lldb +++ b/misctools/lldb/init.lldb @@ -19,3 +19,6 @@ command script import -c bun_pretty_printer.py command script delete btjs command alias btjs p {printf("gathering btjs trace...\n");printf("%s\n", (char*)dumpBtjsTrace())} + +# do not pass SIGHUP on to child process. it is often not the real error and the stop point will be nonsensical. +process handle -p false -s false -n true SIGHUP From a9ebde2b0a17667db87398ee88c94862cf806bd6 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 11 Sep 2025 17:08:06 -0700 Subject: [PATCH 07/60] fix test-require-symlink crash --- src/bun.js/VirtualMachine.zig | 4 ++-- src/resolver/dir_info.zig | 12 +++++++++--- src/resolver/resolver.zig | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/bun.js/VirtualMachine.zig b/src/bun.js/VirtualMachine.zig index 573c95b84ad..d362780de6a 100644 --- a/src/bun.js/VirtualMachine.zig +++ b/src/bun.js/VirtualMachine.zig @@ -839,6 +839,8 @@ extern fn Zig__GlobalObject__destructOnExit(*JSGlobalObject) void; pub fn globalExit(this: *VirtualMachine) noreturn { if (this.shouldDestructMainThreadOnExit()) { Zig__GlobalObject__destructOnExit(this.global); + this.transpiler.deinit(); + this.gc_controller.deinit(); this.deinit(); } bun.Global.exit(this.exit_handler.exit_code); @@ -1917,8 +1919,6 @@ pub fn processFetchLog(globalThis: *JSGlobalObject, specifier: bun.String, refer pub fn deinit(this: *VirtualMachine) void { this.auto_killer.deinit(); - this.transpiler.deinit(); - this.gc_controller.deinit(); if (source_code_printer) |print| { print.getMutableBuffer().deinit(); diff --git a/src/resolver/dir_info.zig b/src/resolver/dir_info.zig index bb876c197db..8c5e15ab2c4 100644 --- a/src/resolver/dir_info.zig +++ b/src/resolver/dir_info.zig @@ -97,9 +97,15 @@ pub fn getEnclosingBrowserScope(i: *const DirInfo) ?*DirInfo { return HashMap.instance.atIndex(i.enclosing_browser_scope); } -pub fn deinit(i: *const DirInfo) void { - if (i.package_json) |p| p.deinit(); - if (i.tsconfig_json) |t| t.deinit(); +pub fn deinit(i: *DirInfo) void { + if (i.package_json) |p| { + p.deinit(); + i.package_json = null; + } + if (i.tsconfig_json) |t| { + t.deinit(); + i.tsconfig_json = null; + } } // Goal: Really fast, low allocation directory map exploiting cache locality where we don't worry about lifetimes much. diff --git a/src/resolver/resolver.zig b/src/resolver/resolver.zig index 283f8b37835..6d510178811 100644 --- a/src/resolver/resolver.zig +++ b/src/resolver/resolver.zig @@ -587,7 +587,7 @@ pub const Resolver = struct { } pub fn deinit(r: *ThisResolver) void { - for (r.dir_cache.values()) |di| di.deinit(); + for (r.dir_cache.values()) |*di| di.deinit(); r.dir_cache.deinit(); } From 99c316e38489fea31be19c3651000806cde27ca5 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Fri, 12 Sep 2025 17:40:58 -0700 Subject: [PATCH 08/60] pass node:buffer --- test/leaksan.supp | 5 +++ test/no-validate-leaksan.txt | 63 ------------------------------------ 2 files changed, 5 insertions(+), 63 deletions(-) diff --git a/test/leaksan.supp b/test/leaksan.supp index e03afa0447e..5c56c9fe4d5 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -12,3 +12,8 @@ leak:WTF::SymbolRegistry::symbolForKey leak:js_printer.printAst__anon leak:Bun__resolveSync leak:JSC::moduleLoaderParseModule +leak:JSC::ScriptExecutable::newCodeBlockFor +leak:JSC::Parser>::parseFunctionExpression +leak:JSC::Parser>::parsePrimaryExpression +leak:JSC::Parser>::parseStatement +leak:JSCInitialize diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index ced3de669a2..d66856c4726 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -612,69 +612,7 @@ test/js/node/test/parallel/test-blocklist-clone.js test/js/node/test/parallel/test-blocklist.js test/js/node/test/parallel/test-broadcastchannel-custom-inspect.js test/js/node/test/parallel/test-btoa-atob.js -test/js/node/test/parallel/test-buffer-alloc.js -test/js/node/test/parallel/test-buffer-arraybuffer.js -test/js/node/test/parallel/test-buffer-ascii.js -test/js/node/test/parallel/test-buffer-backing-arraybuffer.js -test/js/node/test/parallel/test-buffer-badhex.js -test/js/node/test/parallel/test-buffer-bigint64.js -test/js/node/test/parallel/test-buffer-bytelength.js -test/js/node/test/parallel/test-buffer-compare-offset.js -test/js/node/test/parallel/test-buffer-compare.js -test/js/node/test/parallel/test-buffer-concat.js -test/js/node/test/parallel/test-buffer-constants.js -test/js/node/test/parallel/test-buffer-constructor-deprecation-error.js -test/js/node/test/parallel/test-buffer-constructor-node-modules-paths.js -test/js/node/test/parallel/test-buffer-constructor-node-modules.js -test/js/node/test/parallel/test-buffer-constructor-outside-node-modules.js -test/js/node/test/parallel/test-buffer-copy.js -test/js/node/test/parallel/test-buffer-equals.js -test/js/node/test/parallel/test-buffer-failed-alloc-typed-arrays.js -test/js/node/test/parallel/test-buffer-fakes.js -test/js/node/test/parallel/test-buffer-fill.js -test/js/node/test/parallel/test-buffer-from.js -test/js/node/test/parallel/test-buffer-includes.js -test/js/node/test/parallel/test-buffer-indexof.js -test/js/node/test/parallel/test-buffer-inheritance.js -test/js/node/test/parallel/test-buffer-inspect.js -test/js/node/test/parallel/test-buffer-isascii.js -test/js/node/test/parallel/test-buffer-isencoding.js -test/js/node/test/parallel/test-buffer-isutf8.js -test/js/node/test/parallel/test-buffer-iterator.js -test/js/node/test/parallel/test-buffer-new.js -test/js/node/test/parallel/test-buffer-no-negative-allocation.js -test/js/node/test/parallel/test-buffer-nopendingdep-map.js -test/js/node/test/parallel/test-buffer-of-no-deprecation.js -test/js/node/test/parallel/test-buffer-over-max-length.js -test/js/node/test/parallel/test-buffer-parent-property.js -test/js/node/test/parallel/test-buffer-pending-deprecation.js -test/js/node/test/parallel/test-buffer-pool-untransferable.js -test/js/node/test/parallel/test-buffer-prototype-inspect.js -test/js/node/test/parallel/test-buffer-read.js -test/js/node/test/parallel/test-buffer-readdouble.js -test/js/node/test/parallel/test-buffer-readfloat.js -test/js/node/test/parallel/test-buffer-readint.js -test/js/node/test/parallel/test-buffer-readuint.js test/js/node/test/parallel/test-buffer-resizable.js -test/js/node/test/parallel/test-buffer-safe-unsafe.js -test/js/node/test/parallel/test-buffer-set-inspect-max-bytes.js -test/js/node/test/parallel/test-buffer-sharedarraybuffer.js -test/js/node/test/parallel/test-buffer-slice.js -test/js/node/test/parallel/test-buffer-slow.js -test/js/node/test/parallel/test-buffer-swap.js -test/js/node/test/parallel/test-buffer-tojson.js -test/js/node/test/parallel/test-buffer-tostring-range.js -test/js/node/test/parallel/test-buffer-tostring-rangeerror.js -test/js/node/test/parallel/test-buffer-tostring.js -test/js/node/test/parallel/test-buffer-write-fast.js -test/js/node/test/parallel/test-buffer-write.js -test/js/node/test/parallel/test-buffer-writedouble.js -test/js/node/test/parallel/test-buffer-writefloat.js -test/js/node/test/parallel/test-buffer-writeint.js -test/js/node/test/parallel/test-buffer-writeuint.js -test/js/node/test/parallel/test-buffer-zero-fill-cli.js -test/js/node/test/parallel/test-buffer-zero-fill-reset.js -test/js/node/test/parallel/test-buffer-zero-fill.js test/js/node/test/parallel/test-c-ares.js test/js/node/test/parallel/test-child-process-advanced-serialization-largebuffer.js test/js/node/test/parallel/test-child-process-advanced-serialization.js @@ -2749,7 +2687,6 @@ test/js/node/test/parallel/test-zlib-zstd-kmaxlength-rangeerror.js test/js/node/test/parallel/test-zlib-zstd-pledged-src-size.js test/js/node/test/parallel/test-zlib-zstd.js test/js/node/test/parallel/test-zlib.js -test/js/node/test/sequential/test-buffer-creation-regression.js test/js/node/test/sequential/test-child-process-emfile.js test/js/node/test/sequential/test-child-process-execsync.js test/js/node/test/sequential/test-child-process-exit.js From efbbfdcee230b5db22cc069e8afe37bfd7987491 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Fri, 12 Sep 2025 18:39:56 -0700 Subject: [PATCH 09/60] new tests missing from the skip list --- test/no-validate-leaksan.txt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index d66856c4726..6a9e178b55b 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -3118,6 +3118,29 @@ test/regression/issue/test-21049.test.ts test/regression/issue/update-interactive-formatting.test.ts test/snippets/segfault-todo.test.js test/v8/v8.test.ts +test/regression/issue/20321.test.ts +test/regression/issue/246-child_process_object_assign_compatibility.test.ts +test/js/node/test/parallel/test-http-server-keepalive-req-gc.js +test/js/web/websocket/websocket-subprotocol-strict.test.ts +test/regression/issue/jsx-template-string-crash.test.ts +test/js/web/websocket/websocket-blob.test.ts +test/js/node/process/stdin/stdin-fixtures.test.ts +test/js/bun/test/printing/diffexample.test.ts +test/regression/issue/14338.test.ts +test/js/bun/shell/pipeline_stack.test.ts +test/regression/issue/comma-operator-this-binding.test.ts +test/regression/issue/12548.test.ts +test/cli/install/bun-run.test.ts +test/cli/test/test-filter-lifecycle-snapshot.test.ts +test/cli/test/claudecode-flag.test.ts +test/cli/install/bun-pm-scan.test.ts +test/bundler/bun-build-compile-wasm.test.ts +test/cli/install/bun-run-dir.test.ts +test/bake/dev/production.test.ts +test/bake/dev/incremental-graph-edge-deletion.test.ts +test/bake/dev/import-meta-inline.test.ts + + vendor/elysia/test/a.test.ts vendor/elysia/test/tracer/timing.test.ts vendor/elysia/test/tracer/trace.test.ts From 3ee795bfcaf6819ad73abf5f9de8a7501de649b7 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 00:39:21 -0700 Subject: [PATCH 10/60] pass more --- scripts/runner.node.mjs | 15 +-- src/bun.js/bindings/bindings.cpp | 6 ++ src/bun.js/bindings/helpers.h | 3 +- src/codegen/bundle-modules.ts | 11 ++- test/leaksan.supp | 2 + test/no-validate-leaksan.txt | 154 +------------------------------ 6 files changed, 21 insertions(+), 170 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 946ddf240c2..9c2b71666ad 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -164,10 +164,6 @@ const { values: options, positionals: filters } = parseArgs({ type: "boolean", default: false, }, - ["leaksan"]: { - type: "boolean", - default: false, // turn this true when more passes - }, }, }); @@ -590,13 +586,10 @@ async function runTests() { env.BUN_JSC_validateExceptionChecks = "1"; env.BUN_JSC_dumpSimulatedThrows = "1"; } - if ( - (basename(execPath).includes("asan") || (!isCI && options["leaksan"])) && - shouldValidateLeakSan(testPath) - ) { + if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; - env["LSAN_OPTIONS"] = "suppressions=test/leaksan.supp"; + env["LSAN_OPTIONS"] = "malloc_context_size=100:suppressions=test/leaksan.supp"; } return runTest(title, async () => { const { ok, error, stdout, crashes } = await spawnBun(execPath, { @@ -1322,10 +1315,10 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { env.BUN_JSC_validateExceptionChecks = "1"; env.BUN_JSC_dumpSimulatedThrows = "1"; } - if ((basename(execPath).includes("asan") || (!isCI && options["leaksan"])) && shouldValidateLeakSan(testPath)) { + if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; - env["LSAN_OPTIONS"] = "suppressions=test/leaksan.supp"; + env["LSAN_OPTIONS"] = "malloc_context_size=100:suppressions=test/leaksan.supp"; } const { ok, error, stdout, crashes } = await spawnBun(execPath, { diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 41b166d50a6..1ae5c5fe5c8 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -4917,6 +4917,7 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, return; if (sourceURL) { if (sourceURL.isString()) { + except->stack.frames_ptr[0].source_url.deref(); except->stack.frames_ptr[0].source_url = Bun::toStringRef(global, sourceURL); if (!scope.clearExceptionExceptTermination()) [[unlikely]] return; @@ -4958,6 +4959,11 @@ static void fromErrorInstance(ZigException* except, JSC::JSGlobalObject* global, } { + for (int i = 1; i < except->stack.frames_len; i++) { + auto frame = except->stack.frames_ptr[i]; + frame.function_name.deref(); + frame.source_url.deref(); + } except->stack.frames_len = 1; PropertySlot slot = PropertySlot(obj, PropertySlot::InternalMethodType::VMInquiry, &vm); except->stack.frames_ptr[0].remapped = obj->getNonIndexPropertySlot(global, names.originalLinePublicName(), slot); diff --git a/src/bun.js/bindings/helpers.h b/src/bun.js/bindings/helpers.h index 620d12efa56..ce1f0af7034 100644 --- a/src/bun.js/bindings/helpers.h +++ b/src/bun.js/bindings/helpers.h @@ -91,8 +91,7 @@ static const WTF::String toString(ZigString str) return !isTaggedUTF16Ptr(str.ptr) ? WTF::String(WTF::ExternalStringImpl::create({ untag(str.ptr), str.len }, untagVoid(str.ptr), free_global_string)) - : WTF::String(WTF::ExternalStringImpl::create( - { reinterpret_cast(untag(str.ptr)), str.len }, untagVoid(str.ptr), free_global_string)); + : WTF::String(WTF::ExternalStringImpl::create({ reinterpret_cast(untag(str.ptr)), str.len }, untagVoid(str.ptr), free_global_string)); } // This will fail if the string is too long. Let's make it explicit instead of an ASSERT. diff --git a/src/codegen/bundle-modules.ts b/src/codegen/bundle-modules.ts index a7645c16259..33a5986f449 100644 --- a/src/codegen/bundle-modules.ts +++ b/src/codegen/bundle-modules.ts @@ -262,6 +262,8 @@ for (const entrypoint of bundledEntryPoints) { throw new Error(`Errors in ${entrypoint}:\n${errors.map(x => x[1]).join("\n")}`); } + captured += `\n//# sourceURL=${path.join(JS_DIR, file_path.replace(".ts", ".js"))}\n`; + const outputPath = path.join(JS_DIR, file_path); fs.mkdirSync(path.dirname(outputPath), { recursive: true }); fs.writeFileSync(outputPath, captured); @@ -332,14 +334,13 @@ JSValue InternalModuleRegistry::createInternalModuleById(JSGlobalObject* globalO // JS internal modules ${moduleList .map((id, n) => { + const moduleName = idToPublicSpecifierOrEnumName(id); + const fileBase = JSON.stringify(id.replace(/\.[mc]?[tj]s$/, ".js")); + const urlString = "builtin://" + id.replace(/\.[mc]?[tj]s$/, "").replace(/[^a-zA-Z0-9]+/g, "/"); const inner = n >= nativeStartIndex ? `return generateNativeModule(globalObject, vm, generateNativeModule_${nativeModuleEnums[id]});` - : `INTERNAL_MODULE_REGISTRY_GENERATE(globalObject, vm, "${idToPublicSpecifierOrEnumName(id)}"_s, ${JSON.stringify( - id.replace(/\.[mc]?[tj]s$/, ".js"), - )}_s, InternalModuleRegistryConstants::${idToEnumName(id)}Code, "builtin://${id - .replace(/\.[mc]?[tj]s$/, "") - .replace(/[^a-zA-Z0-9]+/g, "/")}"_s);`; + : `INTERNAL_MODULE_REGISTRY_GENERATE(globalObject, vm, MAKE_STATIC_STRING_IMPL("${moduleName}"), MAKE_STATIC_STRING_IMPL(${fileBase}), InternalModuleRegistryConstants::${idToEnumName(id)}Code, MAKE_STATIC_STRING_IMPL("${urlString}"));`; return `case Field::${idToEnumName(id)}: { ${inner} }`; diff --git a/test/leaksan.supp b/test/leaksan.supp index 5c56c9fe4d5..5dcafa8bfc6 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -17,3 +17,5 @@ leak:JSC::Parser>::parseFunctionExpression leak:JSC::Parser>::parsePrimaryExpression leak:JSC::Parser>::parseStatement leak:JSCInitialize +leak:getaddrinfo_send_reply +leak:start_wqthread diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 6a9e178b55b..4d92c9f4fcc 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1729,120 +1729,12 @@ test/js/node/test/parallel/test-module-symlinked-peer-modules.js test/js/node/test/parallel/test-module-version.js test/js/node/test/parallel/test-module-wrap.js test/js/node/test/parallel/test-module-wrapper.js -test/js/node/test/parallel/test-net-access-byteswritten.js -test/js/node/test/parallel/test-net-after-close.js -test/js/node/test/parallel/test-net-autoselectfamily-attempt-timeout-default-value.js -test/js/node/test/parallel/test-net-autoselectfamily-default.js -test/js/node/test/parallel/test-net-autoselectfamily-ipv4first.js -test/js/node/test/parallel/test-net-better-error-messages-listen-path.js -test/js/node/test/parallel/test-net-better-error-messages-listen.js -test/js/node/test/parallel/test-net-better-error-messages-path.js -test/js/node/test/parallel/test-net-better-error-messages-port-hostname.js -test/js/node/test/parallel/test-net-bind-twice.js -test/js/node/test/parallel/test-net-blocklist.js -test/js/node/test/parallel/test-net-buffersize.js -test/js/node/test/parallel/test-net-bytes-written-large.js -test/js/node/test/parallel/test-net-can-reset-timeout.js -test/js/node/test/parallel/test-net-child-process-connect-reset.js -test/js/node/test/parallel/test-net-connect-abort-controller.js -test/js/node/test/parallel/test-net-connect-after-destroy.js -test/js/node/test/parallel/test-net-connect-buffer.js -test/js/node/test/parallel/test-net-connect-buffer2.js -test/js/node/test/parallel/test-net-connect-call-socket-connect.js test/js/node/test/parallel/test-net-connect-custom-lookup-non-string-address.mjs -test/js/node/test/parallel/test-net-connect-destroy.js -test/js/node/test/parallel/test-net-connect-immediate-destroy.js -test/js/node/test/parallel/test-net-connect-immediate-finish.js -test/js/node/test/parallel/test-net-connect-keepalive.js -test/js/node/test/parallel/test-net-connect-no-arg.js -test/js/node/test/parallel/test-net-connect-nodelay.js -test/js/node/test/parallel/test-net-connect-options-invalid.js -test/js/node/test/parallel/test-net-connect-options-ipv6.js -test/js/node/test/parallel/test-net-connect-options-path.js -test/js/node/test/parallel/test-net-connect-options-port.js -test/js/node/test/parallel/test-net-connect-reset-before-connected.js -test/js/node/test/parallel/test-net-connect-reset.js -test/js/node/test/parallel/test-net-deprecated-setsimultaneousaccepts.js -test/js/node/test/parallel/test-net-dns-custom-lookup.js -test/js/node/test/parallel/test-net-dns-error.js -test/js/node/test/parallel/test-net-dns-lookup-skip.js -test/js/node/test/parallel/test-net-dns-lookup.js -test/js/node/test/parallel/test-net-during-close.js -test/js/node/test/parallel/test-net-eaddrinuse.js -test/js/node/test/parallel/test-net-end-without-connect.js -test/js/node/test/parallel/test-net-isip.js -test/js/node/test/parallel/test-net-isipv4.js -test/js/node/test/parallel/test-net-isipv6.js -test/js/node/test/parallel/test-net-keepalive.js -test/js/node/test/parallel/test-net-listen-after-destroying-stdin.js -test/js/node/test/parallel/test-net-listen-close-server-callback-is-not-function.js -test/js/node/test/parallel/test-net-listen-close-server.js -test/js/node/test/parallel/test-net-listen-error.js -test/js/node/test/parallel/test-net-listen-exclusive-random-ports.js -test/js/node/test/parallel/test-net-listen-fd0.js test/js/node/test/parallel/test-net-listen-handle-in-cluster-1.js -test/js/node/test/parallel/test-net-listen-invalid-port.js -test/js/node/test/parallel/test-net-listen-ipv6only.js -test/js/node/test/parallel/test-net-listening.js -test/js/node/test/parallel/test-net-local-address-port.js -test/js/node/test/parallel/test-net-localerror.js -test/js/node/test/parallel/test-net-options-lookup.js -test/js/node/test/parallel/test-net-persistent-keepalive.js -test/js/node/test/parallel/test-net-pipe-connect-errors.js -test/js/node/test/parallel/test-net-pipe-with-long-path.js -test/js/node/test/parallel/test-net-reconnect.js -test/js/node/test/parallel/test-net-remote-address-port.js -test/js/node/test/parallel/test-net-remote-address.js -test/js/node/test/parallel/test-net-reuseport.js test/js/node/test/parallel/test-net-server-async-dispose.mjs test/js/node/test/parallel/test-net-server-blocklist.js -test/js/node/test/parallel/test-net-server-call-listen-multiple-times.js -test/js/node/test/parallel/test-net-server-capture-rejection.js -test/js/node/test/parallel/test-net-server-close-before-calling-lookup-callback.js test/js/node/test/parallel/test-net-server-close-before-ipc-response.js -test/js/node/test/parallel/test-net-server-close.js -test/js/node/test/parallel/test-net-server-drop-connections.js -test/js/node/test/parallel/test-net-server-listen-options-signal.js -test/js/node/test/parallel/test-net-server-listen-remove-callback.js -test/js/node/test/parallel/test-net-server-max-connections-close-makes-more-available.js -test/js/node/test/parallel/test-net-server-max-connections.js -test/js/node/test/parallel/test-net-server-options.js -test/js/node/test/parallel/test-net-server-pause-on-connect.js -test/js/node/test/parallel/test-net-server-simultaneous-accepts-produce-warning-once.js -test/js/node/test/parallel/test-net-server-try-ports.js -test/js/node/test/parallel/test-net-server-unref-persistent.js -test/js/node/test/parallel/test-net-server-unref.js -test/js/node/test/parallel/test-net-settimeout.js -test/js/node/test/parallel/test-net-socket-byteswritten.js -test/js/node/test/parallel/test-net-socket-close-after-end.js -test/js/node/test/parallel/test-net-socket-connect-invalid-autoselectfamily.js -test/js/node/test/parallel/test-net-socket-connect-invalid-autoselectfamilyattempttimeout.js -test/js/node/test/parallel/test-net-socket-connect-without-cb.js -test/js/node/test/parallel/test-net-socket-connecting.js test/js/node/test/parallel/test-net-socket-constructor.js -test/js/node/test/parallel/test-net-socket-destroy-send.js -test/js/node/test/parallel/test-net-socket-destroy-twice.js -test/js/node/test/parallel/test-net-socket-end-before-connect.js -test/js/node/test/parallel/test-net-socket-end-callback.js -test/js/node/test/parallel/test-net-socket-local-address.js -test/js/node/test/parallel/test-net-socket-no-halfopen-enforcer.js -test/js/node/test/parallel/test-net-socket-ready-without-cb.js -test/js/node/test/parallel/test-net-socket-reset-twice.js -test/js/node/test/parallel/test-net-socket-timeout-unref.js -test/js/node/test/parallel/test-net-socket-timeout.js -test/js/node/test/parallel/test-net-socket-write-after-close.js -test/js/node/test/parallel/test-net-socket-write-error.js -test/js/node/test/parallel/test-net-stream.js -test/js/node/test/parallel/test-net-sync-cork.js -test/js/node/test/parallel/test-net-throttle.js -test/js/node/test/parallel/test-net-timeout-no-handle.js -test/js/node/test/parallel/test-net-writable.js -test/js/node/test/parallel/test-net-write-arguments.js -test/js/node/test/parallel/test-net-write-cb-on-destroy-before-connect.js -test/js/node/test/parallel/test-net-write-connect-write.js -test/js/node/test/parallel/test-net-write-fully-async-buffer.js -test/js/node/test/parallel/test-net-write-fully-async-hex-string.js -test/js/node/test/parallel/test-net-write-slow.js test/js/node/test/parallel/test-next-tick-doesnt-hang.js test/js/node/test/parallel/test-next-tick-domain.js test/js/node/test/parallel/test-next-tick-errors.js @@ -1892,59 +1784,15 @@ test/js/node/test/parallel/test-pipe-writev.js test/js/node/test/parallel/test-preload-print-process-argv.js test/js/node/test/parallel/test-preload-self-referential.js test/js/node/test/parallel/test-primitive-timer-leak.js -test/js/node/test/parallel/test-process-abort.js -test/js/node/test/parallel/test-process-argv-0.js -test/js/node/test/parallel/test-process-assert.js -test/js/node/test/parallel/test-process-available-memory.js test/js/node/test/parallel/test-process-beforeexit-throw-exit.js test/js/node/test/parallel/test-process-beforeexit.js -test/js/node/test/parallel/test-process-binding-util.js -test/js/node/test/parallel/test-process-chdir-errormessage.js -test/js/node/test/parallel/test-process-chdir.js -test/js/node/test/parallel/test-process-config.js -test/js/node/test/parallel/test-process-constants-noatime.js -test/js/node/test/parallel/test-process-constrained-memory.js -test/js/node/test/parallel/test-process-cpuUsage.js -test/js/node/test/parallel/test-process-default.js -test/js/node/test/parallel/test-process-dlopen-error-message-crash.js -test/js/node/test/parallel/test-process-dlopen-undefined-exports.js -test/js/node/test/parallel/test-process-domain-segfault.js -test/js/node/test/parallel/test-process-emit.js -test/js/node/test/parallel/test-process-emitwarning.js -test/js/node/test/parallel/test-process-env-windows-error-reset.js -test/js/node/test/parallel/test-process-euid-egid.js -test/js/node/test/parallel/test-process-exception-capture-errors.js test/js/node/test/parallel/test-process-exception-capture-should-abort-on-uncaught.js test/js/node/test/parallel/test-process-exception-capture.js test/js/node/test/parallel/test-process-execpath.js test/js/node/test/parallel/test-process-exit-code-validation.js -test/js/node/test/parallel/test-process-exit-from-before-exit.js -test/js/node/test/parallel/test-process-exit-handler.js -test/js/node/test/parallel/test-process-exit-recursive.js -test/js/node/test/parallel/test-process-exit.js -test/js/node/test/parallel/test-process-external-stdio-close-spawn.js -test/js/node/test/parallel/test-process-external-stdio-close.js -test/js/node/test/parallel/test-process-features.js -test/js/node/test/parallel/test-process-getgroups.js -test/js/node/test/parallel/test-process-hrtime-bigint.js -test/js/node/test/parallel/test-process-hrtime.js -test/js/node/test/parallel/test-process-kill-null.js -test/js/node/test/parallel/test-process-kill-pid.js -test/js/node/test/parallel/test-process-next-tick.js -test/js/node/test/parallel/test-process-no-deprecation.js test/js/node/test/parallel/test-process-ppid.js test/js/node/test/parallel/test-process-really-exit.js test/js/node/test/parallel/test-process-ref-unref.js -test/js/node/test/parallel/test-process-release.js -test/js/node/test/parallel/test-process-remove-all-signal-listeners.js -test/js/node/test/parallel/test-process-setgroups.js -test/js/node/test/parallel/test-process-setsourcemapsenabled.js -test/js/node/test/parallel/test-process-title-cli.js -test/js/node/test/parallel/test-process-uid-gid.js -test/js/node/test/parallel/test-process-umask-mask.js -test/js/node/test/parallel/test-process-umask.js -test/js/node/test/parallel/test-process-uptime.js -test/js/node/test/parallel/test-process-warning.js test/js/node/test/parallel/test-promise-handled-rejection-no-warning.js test/js/node/test/parallel/test-promise-unhandled-default.js test/js/node/test/parallel/test-promise-unhandled-error.js @@ -3139,6 +2987,8 @@ test/cli/install/bun-run-dir.test.ts test/bake/dev/production.test.ts test/bake/dev/incremental-graph-edge-deletion.test.ts test/bake/dev/import-meta-inline.test.ts +test/cli/update_interactive_snapshots.test.ts +test/napi/node-napi-tests/test/js-native-api/6_object_wrap/do.test.ts vendor/elysia/test/a.test.ts From ad6a2ad5c065b4f17ba641a01fa876cc38e5bf59 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 00:40:54 -0700 Subject: [PATCH 11/60] didnt mean to commit that --- src/codegen/bundle-modules.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/codegen/bundle-modules.ts b/src/codegen/bundle-modules.ts index 33a5986f449..104b137abeb 100644 --- a/src/codegen/bundle-modules.ts +++ b/src/codegen/bundle-modules.ts @@ -262,8 +262,6 @@ for (const entrypoint of bundledEntryPoints) { throw new Error(`Errors in ${entrypoint}:\n${errors.map(x => x[1]).join("\n")}`); } - captured += `\n//# sourceURL=${path.join(JS_DIR, file_path.replace(".ts", ".js"))}\n`; - const outputPath = path.join(JS_DIR, file_path); fs.mkdirSync(path.dirname(outputPath), { recursive: true }); fs.writeFileSync(outputPath, captured); From ce755ab78850fcd586b97d8c15d4128404842328 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 15:00:10 -0700 Subject: [PATCH 12/60] node:crypto --- .../bindings/node/crypto/CryptoUtil.cpp | 2 + src/bun.js/web_worker.zig | 2 +- test/leaksan.supp | 2 +- test/no-validate-leaksan.txt | 93 ------------------- 4 files changed, 4 insertions(+), 95 deletions(-) diff --git a/src/bun.js/bindings/node/crypto/CryptoUtil.cpp b/src/bun.js/bindings/node/crypto/CryptoUtil.cpp index 3afe1b3fdc5..2f8ee8cb768 100644 --- a/src/bun.js/bindings/node/crypto/CryptoUtil.cpp +++ b/src/bun.js/bindings/node/crypto/CryptoUtil.cpp @@ -492,9 +492,11 @@ bool convertP1363ToDER(const ncrypto::Buffer& p1363Sig, } if (!derBuffer.tryAppend(std::span { buf.data, buf.len })) { + OPENSSL_free(buf.data); return false; } + OPENSSL_free(buf.data); return true; } diff --git a/src/bun.js/web_worker.zig b/src/bun.js/web_worker.zig index 30f5651660c..6f98c9bc4a2 100644 --- a/src/bun.js/web_worker.zig +++ b/src/bun.js/web_worker.zig @@ -609,10 +609,10 @@ pub fn exitAndDeinit(this: *WebWorker) noreturn { loop_.internal_loop_data.jsc_vm = null; } - bun.uws.onThreadExit(); this.deinit(); if (vm_to_deinit) |vm| { + vm.gc_controller.deinit(); vm.deinit(); // NOTE: deinit here isn't implemented, so freeing workers will leak the vm. } bun.deleteAllPoolsForThreadExit(); diff --git a/test/leaksan.supp b/test/leaksan.supp index 5dcafa8bfc6..d77277aa7f2 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -6,7 +6,6 @@ leak:Zig__GlobalObject__create leak:_objc_msgSend_uncached leak:WTF::fastMalloc leak:WTF::AutomaticThread::start -leak:CryptoObject__create leak:Bun__transpileFile leak:WTF::SymbolRegistry::symbolForKey leak:js_printer.printAst__anon @@ -19,3 +18,4 @@ leak:JSC::Parser>::parseStatement leak:JSCInitialize leak:getaddrinfo_send_reply leak:start_wqthread +leak:CRYPTO_set_thread_local diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 4d92c9f4fcc..86aa700efc5 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -779,101 +779,8 @@ test/js/node/test/parallel/test-console-sync-write-error.js test/js/node/test/parallel/test-console-tty-colors.js test/js/node/test/parallel/test-console-with-frozen-intrinsics.js test/js/node/test/parallel/test-coverage-with-inspector-disabled.js -test/js/node/test/parallel/test-crypto-aes-wrap.js -test/js/node/test/parallel/test-crypto-async-sign-verify.js -test/js/node/test/parallel/test-crypto-authenticated-stream.js -test/js/node/test/parallel/test-crypto-authenticated.js -test/js/node/test/parallel/test-crypto-certificate.js -test/js/node/test/parallel/test-crypto-cipheriv-decipheriv.js -test/js/node/test/parallel/test-crypto-classes.js -test/js/node/test/parallel/test-crypto-des3-wrap.js -test/js/node/test/parallel/test-crypto-dh-constructor.js -test/js/node/test/parallel/test-crypto-dh-curves.js -test/js/node/test/parallel/test-crypto-dh-errors.js -test/js/node/test/parallel/test-crypto-dh-generate-keys.js -test/js/node/test/parallel/test-crypto-dh-group-setters.js -test/js/node/test/parallel/test-crypto-dh-leak.js -test/js/node/test/parallel/test-crypto-dh-modp2-views.js -test/js/node/test/parallel/test-crypto-dh-modp2.js -test/js/node/test/parallel/test-crypto-dh-odd-key.js -test/js/node/test/parallel/test-crypto-dh-padding.js -test/js/node/test/parallel/test-crypto-dh-shared.js -test/js/node/test/parallel/test-crypto-dh-stateless.js -test/js/node/test/parallel/test-crypto-dh.js -test/js/node/test/parallel/test-crypto-domain.js -test/js/node/test/parallel/test-crypto-ecb.js -test/js/node/test/parallel/test-crypto-ecdh-convert-key.js -test/js/node/test/parallel/test-crypto-encoding-validation-error.js -test/js/node/test/parallel/test-crypto-fips.js -test/js/node/test/parallel/test-crypto-from-binary.js -test/js/node/test/parallel/test-crypto-gcm-explicit-short-tag.js -test/js/node/test/parallel/test-crypto-gcm-implicit-short-tag.js -test/js/node/test/parallel/test-crypto-getcipherinfo.js -test/js/node/test/parallel/test-crypto-hash-stream-pipe.js -test/js/node/test/parallel/test-crypto-hash.js -test/js/node/test/parallel/test-crypto-hkdf.js -test/js/node/test/parallel/test-crypto-hmac.js -test/js/node/test/parallel/test-crypto-key-objects.js -test/js/node/test/parallel/test-crypto-keygen-async-dsa-key-object.js -test/js/node/test/parallel/test-crypto-keygen-async-dsa.js -test/js/node/test/parallel/test-crypto-keygen-async-elliptic-curve-jwk-ec.js -test/js/node/test/parallel/test-crypto-keygen-async-elliptic-curve-jwk-rsa.js -test/js/node/test/parallel/test-crypto-keygen-async-elliptic-curve-jwk.js -test/js/node/test/parallel/test-crypto-keygen-async-encrypted-private-key-der.js -test/js/node/test/parallel/test-crypto-keygen-async-encrypted-private-key.js -test/js/node/test/parallel/test-crypto-keygen-async-explicit-elliptic-curve-encrypted-p256.js -test/js/node/test/parallel/test-crypto-keygen-async-explicit-elliptic-curve-encrypted.js.js -test/js/node/test/parallel/test-crypto-keygen-async-explicit-elliptic-curve.js -test/js/node/test/parallel/test-crypto-keygen-async-named-elliptic-curve-encrypted-p256.js -test/js/node/test/parallel/test-crypto-keygen-async-named-elliptic-curve-encrypted.js -test/js/node/test/parallel/test-crypto-keygen-async-named-elliptic-curve.js -test/js/node/test/parallel/test-crypto-keygen-async-rsa.js -test/js/node/test/parallel/test-crypto-keygen-bit-length.js -test/js/node/test/parallel/test-crypto-keygen-deprecation.js -test/js/node/test/parallel/test-crypto-keygen-dh-classic.js -test/js/node/test/parallel/test-crypto-keygen-duplicate-deprecated-option.js -test/js/node/test/parallel/test-crypto-keygen-eddsa.js -test/js/node/test/parallel/test-crypto-keygen-empty-passphrase-no-error.js -test/js/node/test/parallel/test-crypto-keygen-empty-passphrase-no-prompt.js -test/js/node/test/parallel/test-crypto-keygen-invalid-parameter-encoding-dsa.js -test/js/node/test/parallel/test-crypto-keygen-invalid-parameter-encoding-ec.js -test/js/node/test/parallel/test-crypto-keygen-key-object-without-encoding.js -test/js/node/test/parallel/test-crypto-keygen-key-objects.js -test/js/node/test/parallel/test-crypto-keygen-missing-oid.js -test/js/node/test/parallel/test-crypto-keygen-no-rsassa-pss-params.js -test/js/node/test/parallel/test-crypto-keygen-non-standard-public-exponent.js -test/js/node/test/parallel/test-crypto-keygen-promisify.js -test/js/node/test/parallel/test-crypto-keygen-rfc8017-9-1.js -test/js/node/test/parallel/test-crypto-keygen-rfc8017-a-2-3.js -test/js/node/test/parallel/test-crypto-keygen-rsa-pss.js -test/js/node/test/parallel/test-crypto-keygen-sync.js -test/js/node/test/parallel/test-crypto-keygen.js -test/js/node/test/parallel/test-crypto-lazy-transform-writable.js -test/js/node/test/parallel/test-crypto-no-algorithm.js -test/js/node/test/parallel/test-crypto-oaep-zero-length.js -test/js/node/test/parallel/test-crypto-oneshot-hash.js test/js/node/test/parallel/test-crypto-op-during-process-exit.js -test/js/node/test/parallel/test-crypto-padding-aes256.js -test/js/node/test/parallel/test-crypto-padding.js -test/js/node/test/parallel/test-crypto-pbkdf2.js test/js/node/test/parallel/test-crypto-prime.js -test/js/node/test/parallel/test-crypto-private-decrypt-gh32240.js -test/js/node/test/parallel/test-crypto-psychic-signatures.js -test/js/node/test/parallel/test-crypto-publicDecrypt-fails-first-time.js -test/js/node/test/parallel/test-crypto-random.js -test/js/node/test/parallel/test-crypto-randomfillsync-regression.js -test/js/node/test/parallel/test-crypto-randomuuid.js -test/js/node/test/parallel/test-crypto-rsa-dsa.js -test/js/node/test/parallel/test-crypto-scrypt.js -test/js/node/test/parallel/test-crypto-secret-keygen.js -test/js/node/test/parallel/test-crypto-secure-heap.js -test/js/node/test/parallel/test-crypto-sign-verify.js -test/js/node/test/parallel/test-crypto-stream.js -test/js/node/test/parallel/test-crypto-subtle-zero-length.js -test/js/node/test/parallel/test-crypto-update-encoding.js -test/js/node/test/parallel/test-crypto-verify-failure.js -test/js/node/test/parallel/test-crypto-webcrypto-aes-decrypt-tag-too-small.js -test/js/node/test/parallel/test-crypto-worker-thread.js test/js/node/test/parallel/test-crypto-x509.js test/js/node/test/parallel/test-datetime-change-notify.js test/js/node/test/parallel/test-debug-process.js From 75d40ef8b5b3574d15d4b67f4f42aa24b24dfce6 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 15:02:59 -0700 Subject: [PATCH 13/60] node:dns --- test/no-validate-leaksan.txt | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 86aa700efc5..60678f9ae68 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -876,29 +876,6 @@ test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync-error.j test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync-run-stores.js test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync.js test/js/node/test/parallel/test-diagnostics-channel-udp.js -test/js/node/test/parallel/test-dns-cancel-reverse-lookup.js -test/js/node/test/parallel/test-dns-channel-cancel-promise.js -test/js/node/test/parallel/test-dns-channel-cancel.js -test/js/node/test/parallel/test-dns-channel-timeout.js -test/js/node/test/parallel/test-dns-default-order-ipv4.js -test/js/node/test/parallel/test-dns-default-order-ipv6.js -test/js/node/test/parallel/test-dns-default-order-verbatim.js -test/js/node/test/parallel/test-dns-get-server.js -test/js/node/test/parallel/test-dns-lookup-promises-options-deprecated.js -test/js/node/test/parallel/test-dns-lookup.js -test/js/node/test/parallel/test-dns-lookupService-promises.js -test/js/node/test/parallel/test-dns-lookupService.js -test/js/node/test/parallel/test-dns-multi-channel.js -test/js/node/test/parallel/test-dns-promises-exists.js -test/js/node/test/parallel/test-dns-resolve-promises.js -test/js/node/test/parallel/test-dns-resolveany-bad-ancount.js -test/js/node/test/parallel/test-dns-resolveany.js -test/js/node/test/parallel/test-dns-resolvens-typeerror.js -test/js/node/test/parallel/test-dns-set-default-order.js -test/js/node/test/parallel/test-dns-setlocaladdress.js -test/js/node/test/parallel/test-dns-setserver-when-querying.js -test/js/node/test/parallel/test-dns-setservers-type-check.js -test/js/node/test/parallel/test-dns.js test/js/node/test/parallel/test-domain-crypto.js test/js/node/test/parallel/test-domain-ee-error-listener.js test/js/node/test/parallel/test-domain-nested-throw.js From f7e2a437e04e70c39df8227d0896087aeb64692a Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 15:08:50 -0700 Subject: [PATCH 14/60] node:dgram --- test/no-validate-leaksan.txt | 64 ------------------------------------ 1 file changed, 64 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 60678f9ae68..8449ce7c960 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -793,71 +793,7 @@ test/js/node/test/parallel/test-debugger-repeat-last.js test/js/node/test/parallel/test-debugger-restart-message.js test/js/node/test/parallel/test-delayed-require.js test/js/node/test/parallel/test-destroy-socket-in-lookup.js -test/js/node/test/parallel/test-dgram-abort-closed.js -test/js/node/test/parallel/test-dgram-address.js test/js/node/test/parallel/test-dgram-async-dispose.mjs -test/js/node/test/parallel/test-dgram-bind-default-address.js -test/js/node/test/parallel/test-dgram-bind-error-repeat.js -test/js/node/test/parallel/test-dgram-bind-socket-close-before-lookup.js -test/js/node/test/parallel/test-dgram-bind.js -test/js/node/test/parallel/test-dgram-bytes-length.js -test/js/node/test/parallel/test-dgram-close-during-bind.js -test/js/node/test/parallel/test-dgram-close-in-listening.js -test/js/node/test/parallel/test-dgram-close-is-not-callback.js -test/js/node/test/parallel/test-dgram-close-signal.js -test/js/node/test/parallel/test-dgram-close.js -test/js/node/test/parallel/test-dgram-cluster-close-during-bind.js -test/js/node/test/parallel/test-dgram-cluster-close-in-listening.js -test/js/node/test/parallel/test-dgram-connect-send-callback-buffer-length.js -test/js/node/test/parallel/test-dgram-connect-send-callback-buffer.js -test/js/node/test/parallel/test-dgram-connect-send-callback-multi-buffer.js -test/js/node/test/parallel/test-dgram-connect-send-default-host.js -test/js/node/test/parallel/test-dgram-connect-send-empty-array.js -test/js/node/test/parallel/test-dgram-connect-send-empty-buffer.js -test/js/node/test/parallel/test-dgram-connect-send-empty-packet.js -test/js/node/test/parallel/test-dgram-connect-send-multi-buffer-copy.js -test/js/node/test/parallel/test-dgram-connect-send-multi-string-array.js -test/js/node/test/parallel/test-dgram-connect.js -test/js/node/test/parallel/test-dgram-custom-lookup.js -test/js/node/test/parallel/test-dgram-deprecation-error.js -test/js/node/test/parallel/test-dgram-error-message-address.js -test/js/node/test/parallel/test-dgram-implicit-bind.js -test/js/node/test/parallel/test-dgram-ipv6only.js -test/js/node/test/parallel/test-dgram-listen-after-bind.js -test/js/node/test/parallel/test-dgram-membership.js -test/js/node/test/parallel/test-dgram-msgsize.js -test/js/node/test/parallel/test-dgram-multicast-loopback.js -test/js/node/test/parallel/test-dgram-multicast-set-interface.js -test/js/node/test/parallel/test-dgram-multicast-setTTL.js -test/js/node/test/parallel/test-dgram-oob-buffer.js -test/js/node/test/parallel/test-dgram-recv-error.js -test/js/node/test/parallel/test-dgram-ref.js -test/js/node/test/parallel/test-dgram-reuseport.js -test/js/node/test/parallel/test-dgram-send-address-types.js -test/js/node/test/parallel/test-dgram-send-bad-arguments.js -test/js/node/test/parallel/test-dgram-send-callback-buffer-empty-address.js -test/js/node/test/parallel/test-dgram-send-callback-buffer-length-empty-address.js -test/js/node/test/parallel/test-dgram-send-callback-buffer-length.js -test/js/node/test/parallel/test-dgram-send-callback-buffer.js -test/js/node/test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js -test/js/node/test/parallel/test-dgram-send-callback-multi-buffer.js -test/js/node/test/parallel/test-dgram-send-callback-recursive.js -test/js/node/test/parallel/test-dgram-send-cb-quelches-error.js -test/js/node/test/parallel/test-dgram-send-default-host.js -test/js/node/test/parallel/test-dgram-send-empty-array.js -test/js/node/test/parallel/test-dgram-send-empty-buffer.js -test/js/node/test/parallel/test-dgram-send-empty-packet.js -test/js/node/test/parallel/test-dgram-send-error.js -test/js/node/test/parallel/test-dgram-send-invalid-msg-type.js -test/js/node/test/parallel/test-dgram-send-multi-buffer-copy.js -test/js/node/test/parallel/test-dgram-send-multi-string-array.js -test/js/node/test/parallel/test-dgram-sendto.js -test/js/node/test/parallel/test-dgram-setBroadcast.js -test/js/node/test/parallel/test-dgram-setTTL.js -test/js/node/test/parallel/test-dgram-udp4.js -test/js/node/test/parallel/test-dgram-udp6-link-local-address.js -test/js/node/test/parallel/test-dgram-udp6-send-default-host.js -test/js/node/test/parallel/test-dgram-unref-in-cluster.js test/js/node/test/parallel/test-dgram-unref.js test/js/node/test/parallel/test-diagnostics-channel-bind-store.js test/js/node/test/parallel/test-diagnostics-channel-has-subscribers.js From d22e13980d7c534364ec4e3ebd1662da5c215f9f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 15:31:41 -0700 Subject: [PATCH 15/60] node:child_process --- scripts/runner.node.mjs | 4 +- test/no-validate-leaksan.txt | 83 ------------------------------------ 2 files changed, 2 insertions(+), 85 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 9c2b71666ad..eb4efa19cf6 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -589,7 +589,7 @@ async function runTests() { if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; - env["LSAN_OPTIONS"] = "malloc_context_size=100:suppressions=test/leaksan.supp"; + env["LSAN_OPTIONS"] = "malloc_context_size=100:print_suppressions=0:suppressions=test/leaksan.supp"; } return runTest(title, async () => { const { ok, error, stdout, crashes } = await spawnBun(execPath, { @@ -1318,7 +1318,7 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; - env["LSAN_OPTIONS"] = "malloc_context_size=100:suppressions=test/leaksan.supp"; + env["LSAN_OPTIONS"] = "malloc_context_size=100:print_suppressions=0:suppressions=test/leaksan.supp"; } const { ok, error, stdout, crashes } = await spawnBun(execPath, { diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 8449ce7c960..e5bc1225241 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -614,94 +614,11 @@ test/js/node/test/parallel/test-broadcastchannel-custom-inspect.js test/js/node/test/parallel/test-btoa-atob.js test/js/node/test/parallel/test-buffer-resizable.js test/js/node/test/parallel/test-c-ares.js -test/js/node/test/parallel/test-child-process-advanced-serialization-largebuffer.js -test/js/node/test/parallel/test-child-process-advanced-serialization.js -test/js/node/test/parallel/test-child-process-can-write-to-stdout.js -test/js/node/test/parallel/test-child-process-constructor.js -test/js/node/test/parallel/test-child-process-cwd.js -test/js/node/test/parallel/test-child-process-default-options.js -test/js/node/test/parallel/test-child-process-destroy.js -test/js/node/test/parallel/test-child-process-detached.js -test/js/node/test/parallel/test-child-process-dgram-reuseport.js -test/js/node/test/parallel/test-child-process-disconnect.js -test/js/node/test/parallel/test-child-process-double-pipe.js -test/js/node/test/parallel/test-child-process-emfile.js -test/js/node/test/parallel/test-child-process-env.js -test/js/node/test/parallel/test-child-process-exec-abortcontroller-promisified.js -test/js/node/test/parallel/test-child-process-exec-any-shells-windows.js -test/js/node/test/parallel/test-child-process-exec-cwd.js -test/js/node/test/parallel/test-child-process-exec-encoding.js -test/js/node/test/parallel/test-child-process-exec-env.js -test/js/node/test/parallel/test-child-process-exec-error.js -test/js/node/test/parallel/test-child-process-exec-maxbuf.js -test/js/node/test/parallel/test-child-process-exec-std-encoding.js -test/js/node/test/parallel/test-child-process-exec-stdout-stderr-data-string.js -test/js/node/test/parallel/test-child-process-exec-timeout-expire.js -test/js/node/test/parallel/test-child-process-exec-timeout-kill.js -test/js/node/test/parallel/test-child-process-exec-timeout-not-expired.js -test/js/node/test/parallel/test-child-process-execFile-promisified-abortController.js -test/js/node/test/parallel/test-child-process-execfile-maxbuf.js -test/js/node/test/parallel/test-child-process-execfile.js -test/js/node/test/parallel/test-child-process-execfilesync-maxbuf.js -test/js/node/test/parallel/test-child-process-execsync-maxbuf.js -test/js/node/test/parallel/test-child-process-exit-code.js -test/js/node/test/parallel/test-child-process-flush-stdio.js -test/js/node/test/parallel/test-child-process-fork-abort-signal.js -test/js/node/test/parallel/test-child-process-fork-and-spawn.js -test/js/node/test/parallel/test-child-process-fork-args.js -test/js/node/test/parallel/test-child-process-fork-close.js -test/js/node/test/parallel/test-child-process-fork-closed-channel-segfault.js -test/js/node/test/parallel/test-child-process-fork-detached.js -test/js/node/test/parallel/test-child-process-fork-exec-argv.js -test/js/node/test/parallel/test-child-process-fork-exec-path.js -test/js/node/test/parallel/test-child-process-fork-no-shell.js -test/js/node/test/parallel/test-child-process-fork-ref.js -test/js/node/test/parallel/test-child-process-fork-ref2.js -test/js/node/test/parallel/test-child-process-fork-stdio-string-variant.js -test/js/node/test/parallel/test-child-process-fork-timeout-kill-signal.js test/js/node/test/parallel/test-child-process-fork-url.mjs -test/js/node/test/parallel/test-child-process-fork.js -test/js/node/test/parallel/test-child-process-fork3.js -test/js/node/test/parallel/test-child-process-ipc-next-tick.js test/js/node/test/parallel/test-child-process-ipc.js -test/js/node/test/parallel/test-child-process-kill.js -test/js/node/test/parallel/test-child-process-net-reuseport.js -test/js/node/test/parallel/test-child-process-no-deprecation.js -test/js/node/test/parallel/test-child-process-promisified.js -test/js/node/test/parallel/test-child-process-reject-null-bytes.js -test/js/node/test/parallel/test-child-process-send-after-close.js -test/js/node/test/parallel/test-child-process-send-cb.js -test/js/node/test/parallel/test-child-process-send-type-error.js -test/js/node/test/parallel/test-child-process-send-utf8.js -test/js/node/test/parallel/test-child-process-set-blocking.js test/js/node/test/parallel/test-child-process-silent.js -test/js/node/test/parallel/test-child-process-spawn-args.js -test/js/node/test/parallel/test-child-process-spawn-argv0.js -test/js/node/test/parallel/test-child-process-spawn-controller.js -test/js/node/test/parallel/test-child-process-spawn-error.js -test/js/node/test/parallel/test-child-process-spawn-event.js -test/js/node/test/parallel/test-child-process-spawn-shell.js -test/js/node/test/parallel/test-child-process-spawn-timeout-kill-signal.js -test/js/node/test/parallel/test-child-process-spawn-typeerror.js -test/js/node/test/parallel/test-child-process-spawnsync-args.js -test/js/node/test/parallel/test-child-process-spawnsync-env.js -test/js/node/test/parallel/test-child-process-spawnsync-input.js -test/js/node/test/parallel/test-child-process-spawnsync-kill-signal.js -test/js/node/test/parallel/test-child-process-spawnsync-maxbuf.js -test/js/node/test/parallel/test-child-process-spawnsync-shell.js -test/js/node/test/parallel/test-child-process-spawnsync-timeout.js -test/js/node/test/parallel/test-child-process-spawnsync-validation-errors.js -test/js/node/test/parallel/test-child-process-spawnsync.js -test/js/node/test/parallel/test-child-process-stdin-ipc.js -test/js/node/test/parallel/test-child-process-stdin.js -test/js/node/test/parallel/test-child-process-stdio-big-write-end.js -test/js/node/test/parallel/test-child-process-stdio-inherit.js -test/js/node/test/parallel/test-child-process-stdio-overlapped.js -test/js/node/test/parallel/test-child-process-stdio.js test/js/node/test/parallel/test-child-process-stdout-flush-exit.js test/js/node/test/parallel/test-child-process-stdout-flush.js -test/js/node/test/parallel/test-child-process-stdout-ipc.js -test/js/node/test/parallel/test-child-process-windows-hide.js test/js/node/test/parallel/test-cli-eval-event.js test/js/node/test/parallel/test-cli-options-precedence.js test/js/node/test/parallel/test-client-request-destroy.js From c771087382db37d376402b5e454e3ac674e140fc Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 15:33:16 -0700 Subject: [PATCH 16/60] node:console --- test/no-validate-leaksan.txt | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index e5bc1225241..c70d490eb52 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -681,20 +681,6 @@ test/js/node/test/parallel/test-common-expect-warning.js test/js/node/test/parallel/test-common-gc.js test/js/node/test/parallel/test-common-must-not-call.js test/js/node/test/parallel/test-config-json-schema.js -test/js/node/test/parallel/test-console-assign-undefined.js -test/js/node/test/parallel/test-console-async-write-error.js -test/js/node/test/parallel/test-console-group.js -test/js/node/test/parallel/test-console-instance.js -test/js/node/test/parallel/test-console-issue-43095.js -test/js/node/test/parallel/test-console-log-stdio-broken-dest.js -test/js/node/test/parallel/test-console-log-throw-primitive.js -test/js/node/test/parallel/test-console-methods.js -test/js/node/test/parallel/test-console-no-swallow-stack-overflow.js -test/js/node/test/parallel/test-console-not-call-toString.js -test/js/node/test/parallel/test-console-self-assign.js -test/js/node/test/parallel/test-console-sync-write-error.js -test/js/node/test/parallel/test-console-tty-colors.js -test/js/node/test/parallel/test-console-with-frozen-intrinsics.js test/js/node/test/parallel/test-coverage-with-inspector-disabled.js test/js/node/test/parallel/test-crypto-op-during-process-exit.js test/js/node/test/parallel/test-crypto-prime.js From 6531fb2056948dff4def8ff35344f5ca2af6a32c Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 15:41:47 -0700 Subject: [PATCH 17/60] node:events --- src/bun.js/VirtualMachine.zig | 1 + test/no-validate-leaksan.txt | 39 ----------------------------------- 2 files changed, 1 insertion(+), 39 deletions(-) diff --git a/src/bun.js/VirtualMachine.zig b/src/bun.js/VirtualMachine.zig index d362780de6a..fb68b9cfa25 100644 --- a/src/bun.js/VirtualMachine.zig +++ b/src/bun.js/VirtualMachine.zig @@ -838,6 +838,7 @@ extern fn Zig__GlobalObject__destructOnExit(*JSGlobalObject) void; pub fn globalExit(this: *VirtualMachine) noreturn { if (this.shouldDestructMainThreadOnExit()) { + if (this.eventLoop().forever_timer) |t| t.deinit(true); Zig__GlobalObject__destructOnExit(this.global); this.transpiler.deinit(); this.gc_controller.deinit(); diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index c70d490eb52..78503d1f270 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -749,46 +749,7 @@ test/js/node/test/parallel/test-eslint-require-common-first.js test/js/node/test/parallel/test-eslint-required-modules.js test/js/node/test/parallel/test-eval-strict-referenceerror.js test/js/node/test/parallel/test-eval.js -test/js/node/test/parallel/test-event-capture-rejections.js -test/js/node/test/parallel/test-event-emitter-add-listeners.js -test/js/node/test/parallel/test-event-emitter-check-listener-leaks.js -test/js/node/test/parallel/test-event-emitter-emit-context.js -test/js/node/test/parallel/test-event-emitter-error-monitor.js -test/js/node/test/parallel/test-event-emitter-errors.js -test/js/node/test/parallel/test-event-emitter-get-max-listeners.js -test/js/node/test/parallel/test-event-emitter-invalid-listener.js -test/js/node/test/parallel/test-event-emitter-listener-count.js -test/js/node/test/parallel/test-event-emitter-listeners-side-effects.js -test/js/node/test/parallel/test-event-emitter-listeners.js -test/js/node/test/parallel/test-event-emitter-max-listeners-warning-for-null.js -test/js/node/test/parallel/test-event-emitter-max-listeners-warning-for-symbol.js -test/js/node/test/parallel/test-event-emitter-max-listeners-warning.js -test/js/node/test/parallel/test-event-emitter-max-listeners.js -test/js/node/test/parallel/test-event-emitter-method-names.js -test/js/node/test/parallel/test-event-emitter-modify-in-emit.js -test/js/node/test/parallel/test-event-emitter-no-error-provided-to-error-event.js -test/js/node/test/parallel/test-event-emitter-num-args.js -test/js/node/test/parallel/test-event-emitter-once.js -test/js/node/test/parallel/test-event-emitter-prepend.js -test/js/node/test/parallel/test-event-emitter-remove-all-listeners.js -test/js/node/test/parallel/test-event-emitter-remove-listeners.js -test/js/node/test/parallel/test-event-emitter-set-max-listeners-side-effects.js -test/js/node/test/parallel/test-event-emitter-special-event-names.js -test/js/node/test/parallel/test-event-emitter-subclass.js -test/js/node/test/parallel/test-event-emitter-symbols.js -test/js/node/test/parallel/test-event-target.js test/js/node/test/parallel/test-events-add-abort-listener.mjs -test/js/node/test/parallel/test-events-customevent.js -test/js/node/test/parallel/test-events-getmaxlisteners.js -test/js/node/test/parallel/test-events-list.js -test/js/node/test/parallel/test-events-listener-count-with-listener.js -test/js/node/test/parallel/test-events-on-async-iterator.js -test/js/node/test/parallel/test-events-once.js -test/js/node/test/parallel/test-events-static-geteventlisteners.js -test/js/node/test/parallel/test-events-uncaught-exception-stack.js -test/js/node/test/parallel/test-eventsource-disabled.js -test/js/node/test/parallel/test-eventtarget-once-twice.js -test/js/node/test/parallel/test-eventtarget.js test/js/node/test/parallel/test-exception-handler.js test/js/node/test/parallel/test-exception-handler2.js test/js/node/test/parallel/test-fetch.mjs From 00d6c5bf2f1c55495f9fcd79eff9f5187fc845e9 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 16:52:14 -0700 Subject: [PATCH 18/60] node:fs --- test/no-validate-leaksan.txt | 192 ----------------------------------- 1 file changed, 192 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 78503d1f270..3060bbc7518 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -762,219 +762,27 @@ test/js/node/test/parallel/test-file-write-stream4.js test/js/node/test/parallel/test-file-write-stream5.js test/js/node/test/parallel/test-filehandle-close.js test/js/node/test/parallel/test-finalization-registry-shutdown.js -test/js/node/test/parallel/test-fs-access.js -test/js/node/test/parallel/test-fs-append-file-flush.js -test/js/node/test/parallel/test-fs-append-file-sync.js -test/js/node/test/parallel/test-fs-append-file.js -test/js/node/test/parallel/test-fs-assert-encoding-error.js -test/js/node/test/parallel/test-fs-buffer.js -test/js/node/test/parallel/test-fs-buffertype-writesync.js -test/js/node/test/parallel/test-fs-chmod-mask.js -test/js/node/test/parallel/test-fs-chmod.js -test/js/node/test/parallel/test-fs-chown-type-check.js -test/js/node/test/parallel/test-fs-close-errors.js -test/js/node/test/parallel/test-fs-close.js -test/js/node/test/parallel/test-fs-constants.js -test/js/node/test/parallel/test-fs-copyfile-respect-permissions.js -test/js/node/test/parallel/test-fs-copyfile.js -test/js/node/test/parallel/test-fs-empty-readStream.js -test/js/node/test/parallel/test-fs-exists.js -test/js/node/test/parallel/test-fs-existssync-false.js -test/js/node/test/parallel/test-fs-fchmod.js -test/js/node/test/parallel/test-fs-fchown.js -test/js/node/test/parallel/test-fs-filehandle-use-after-close.js -test/js/node/test/parallel/test-fs-fsync.js -test/js/node/test/parallel/test-fs-lchmod.js -test/js/node/test/parallel/test-fs-lchown.js -test/js/node/test/parallel/test-fs-link.js -test/js/node/test/parallel/test-fs-long-path.js -test/js/node/test/parallel/test-fs-make-callback.js -test/js/node/test/parallel/test-fs-makeStatsCallback.js -test/js/node/test/parallel/test-fs-mkdir-mode-mask.js -test/js/node/test/parallel/test-fs-mkdir-recursive-eaccess.js -test/js/node/test/parallel/test-fs-mkdir-rmdir.js -test/js/node/test/parallel/test-fs-mkdir.js -test/js/node/test/parallel/test-fs-mkdtemp-prefix-check.js -test/js/node/test/parallel/test-fs-mkdtemp.js -test/js/node/test/parallel/test-fs-non-number-arguments-throw.js -test/js/node/test/parallel/test-fs-null-bytes.js -test/js/node/test/parallel/test-fs-open-mode-mask.js -test/js/node/test/parallel/test-fs-open-no-close.js -test/js/node/test/parallel/test-fs-open-numeric-flags.js -test/js/node/test/parallel/test-fs-open.js -test/js/node/test/parallel/test-fs-operations-with-surrogate-pairs.js test/js/node/test/parallel/test-fs-options-immutable.js -test/js/node/test/parallel/test-fs-promises-exists.js -test/js/node/test/parallel/test-fs-promises-file-handle-append-file.js -test/js/node/test/parallel/test-fs-promises-file-handle-chmod.js -test/js/node/test/parallel/test-fs-promises-file-handle-dispose.js -test/js/node/test/parallel/test-fs-promises-file-handle-read-worker.js -test/js/node/test/parallel/test-fs-promises-file-handle-read.js -test/js/node/test/parallel/test-fs-promises-file-handle-readFile.js -test/js/node/test/parallel/test-fs-promises-file-handle-stat.js -test/js/node/test/parallel/test-fs-promises-file-handle-stream.js -test/js/node/test/parallel/test-fs-promises-file-handle-sync.js -test/js/node/test/parallel/test-fs-promises-file-handle-truncate.js -test/js/node/test/parallel/test-fs-promises-file-handle-write.js -test/js/node/test/parallel/test-fs-promises-file-handle-writeFile.js -test/js/node/test/parallel/test-fs-promises-readfile-empty.js -test/js/node/test/parallel/test-fs-promises-readfile-with-fd.js -test/js/node/test/parallel/test-fs-promises-readfile.js test/js/node/test/parallel/test-fs-promises-watch.js -test/js/node/test/parallel/test-fs-promises-write-optional-params.js -test/js/node/test/parallel/test-fs-promises-writefile-typedarray.js -test/js/node/test/parallel/test-fs-promises-writefile-with-fd.js -test/js/node/test/parallel/test-fs-promises-writefile.js -test/js/node/test/parallel/test-fs-promisified.js -test/js/node/test/parallel/test-fs-read-empty-buffer.js -test/js/node/test/parallel/test-fs-read-file-assert-encoding.js -test/js/node/test/parallel/test-fs-read-file-sync-hostname.js -test/js/node/test/parallel/test-fs-read-file-sync.js -test/js/node/test/parallel/test-fs-read-offset-null.js -test/js/node/test/parallel/test-fs-read-optional-params.js test/js/node/test/parallel/test-fs-read-position-validation.mjs -test/js/node/test/parallel/test-fs-read-promises-optional-params.js test/js/node/test/parallel/test-fs-read-promises-position-validation.mjs -test/js/node/test/parallel/test-fs-read-stream-autoClose.js -test/js/node/test/parallel/test-fs-read-stream-concurrent-reads.js -test/js/node/test/parallel/test-fs-read-stream-double-close.js -test/js/node/test/parallel/test-fs-read-stream-encoding.js -test/js/node/test/parallel/test-fs-read-stream-err.js -test/js/node/test/parallel/test-fs-read-stream-fd-leak.js -test/js/node/test/parallel/test-fs-read-stream-fd.js -test/js/node/test/parallel/test-fs-read-stream-file-handle.js -test/js/node/test/parallel/test-fs-read-stream-inherit.js -test/js/node/test/parallel/test-fs-read-stream-patch-open.js -test/js/node/test/parallel/test-fs-read-stream-resume.js -test/js/node/test/parallel/test-fs-read-stream-throw-type-error.js -test/js/node/test/parallel/test-fs-read-type.js -test/js/node/test/parallel/test-fs-read-zero-length.js -test/js/node/test/parallel/test-fs-read.js -test/js/node/test/parallel/test-fs-readSync-optional-params.js test/js/node/test/parallel/test-fs-readSync-position-validation.mjs -test/js/node/test/parallel/test-fs-readdir-buffer.js -test/js/node/test/parallel/test-fs-readdir-pipe.js -test/js/node/test/parallel/test-fs-readdir-recursive.js -test/js/node/test/parallel/test-fs-readdir-stack-overflow.js -test/js/node/test/parallel/test-fs-readdir-types-symlinks.js -test/js/node/test/parallel/test-fs-readdir-types.js -test/js/node/test/parallel/test-fs-readdir-ucs2.js -test/js/node/test/parallel/test-fs-readdir.js -test/js/node/test/parallel/test-fs-readfile-empty.js -test/js/node/test/parallel/test-fs-readfile-eof.js -test/js/node/test/parallel/test-fs-readfile-error.js -test/js/node/test/parallel/test-fs-readfile-fd.js -test/js/node/test/parallel/test-fs-readfile-flags.js -test/js/node/test/parallel/test-fs-readfile-pipe-large.js -test/js/node/test/parallel/test-fs-readfile-pipe.js -test/js/node/test/parallel/test-fs-readfile-unlink.js -test/js/node/test/parallel/test-fs-readfile-zero-byte-liar.js -test/js/node/test/parallel/test-fs-readfile.js -test/js/node/test/parallel/test-fs-readfilesync-enoent.js -test/js/node/test/parallel/test-fs-readfilesync-pipe-large.js -test/js/node/test/parallel/test-fs-readlink-type-check.js -test/js/node/test/parallel/test-fs-readv-promises.js -test/js/node/test/parallel/test-fs-readv-promisify.js -test/js/node/test/parallel/test-fs-readv-sync.js -test/js/node/test/parallel/test-fs-readv.js -test/js/node/test/parallel/test-fs-ready-event-stream.js -test/js/node/test/parallel/test-fs-realpath-buffer-encoding.js -test/js/node/test/parallel/test-fs-realpath-native.js -test/js/node/test/parallel/test-fs-realpath-on-substed-drive.js -test/js/node/test/parallel/test-fs-realpath-pipe.js -test/js/node/test/parallel/test-fs-realpath.js -test/js/node/test/parallel/test-fs-rename-type-check.js -test/js/node/test/parallel/test-fs-rmdir-recursive-sync-warns-not-found.js -test/js/node/test/parallel/test-fs-rmdir-recursive-sync-warns-on-file.js -test/js/node/test/parallel/test-fs-rmdir-recursive-throws-not-found.js -test/js/node/test/parallel/test-fs-rmdir-recursive-throws-on-file.js -test/js/node/test/parallel/test-fs-rmdir-recursive-warns-not-found.js -test/js/node/test/parallel/test-fs-rmdir-recursive-warns-on-file.js -test/js/node/test/parallel/test-fs-rmdir-recursive.js -test/js/node/test/parallel/test-fs-rmdir-type-check.js -test/js/node/test/parallel/test-fs-sir-writes-alot.js -test/js/node/test/parallel/test-fs-stat-bigint.js test/js/node/test/parallel/test-fs-stat-date.mjs -test/js/node/test/parallel/test-fs-stat.js -test/js/node/test/parallel/test-fs-statfs.js -test/js/node/test/parallel/test-fs-stream-construct-compat-error-read.js -test/js/node/test/parallel/test-fs-stream-construct-compat-error-write.js -test/js/node/test/parallel/test-fs-stream-construct-compat-graceful-fs.js -test/js/node/test/parallel/test-fs-stream-construct-compat-old-node.js -test/js/node/test/parallel/test-fs-stream-destroy-emit-error.js -test/js/node/test/parallel/test-fs-stream-double-close.js -test/js/node/test/parallel/test-fs-stream-fs-options.js -test/js/node/test/parallel/test-fs-stream-options.js -test/js/node/test/parallel/test-fs-symlink-buffer-path.js -test/js/node/test/parallel/test-fs-symlink-dir-junction-relative.js -test/js/node/test/parallel/test-fs-symlink-dir-junction.js -test/js/node/test/parallel/test-fs-symlink-dir.js -test/js/node/test/parallel/test-fs-symlink-longpath.js -test/js/node/test/parallel/test-fs-symlink.js -test/js/node/test/parallel/test-fs-syncwritestream.js -test/js/node/test/parallel/test-fs-timestamp-parsing-error.js -test/js/node/test/parallel/test-fs-truncate-clear-file-zero.js -test/js/node/test/parallel/test-fs-truncate-fd.js -test/js/node/test/parallel/test-fs-truncate-sync.js -test/js/node/test/parallel/test-fs-truncate.js -test/js/node/test/parallel/test-fs-unlink-type-check.js -test/js/node/test/parallel/test-fs-utimes-y2K38.js -test/js/node/test/parallel/test-fs-utimes.js test/js/node/test/parallel/test-fs-watch-abort-signal.js test/js/node/test/parallel/test-fs-watch-close-when-destroyed.js test/js/node/test/parallel/test-fs-watch-encoding.js -test/js/node/test/parallel/test-fs-watch-file-enoent-after-deletion.js test/js/node/test/parallel/test-fs-watch-recursive-add-file-to-existing-subfolder.js test/js/node/test/parallel/test-fs-watch-recursive-add-file-with-url.js test/js/node/test/parallel/test-fs-watch-recursive-add-file.js test/js/node/test/parallel/test-fs-watch-recursive-add-folder.js test/js/node/test/parallel/test-fs-watch-recursive-assert-leaks.js test/js/node/test/parallel/test-fs-watch-recursive-delete.js -test/js/node/test/parallel/test-fs-watch-recursive-linux-parallel-remove.js test/js/node/test/parallel/test-fs-watch-recursive-sync-write.js test/js/node/test/parallel/test-fs-watch-recursive-update-file.js -test/js/node/test/parallel/test-fs-watch-recursive-validate.js test/js/node/test/parallel/test-fs-watch-recursive-watch-file.js test/js/node/test/parallel/test-fs-watch-ref-unref.js -test/js/node/test/parallel/test-fs-watch-stop-async.js -test/js/node/test/parallel/test-fs-watch-stop-sync.js test/js/node/test/parallel/test-fs-watch.js -test/js/node/test/parallel/test-fs-watchfile-ref-unref.js test/js/node/test/parallel/test-fs-watchfile.js -test/js/node/test/parallel/test-fs-whatwg-url.js -test/js/node/test/parallel/test-fs-write-buffer-large.js -test/js/node/test/parallel/test-fs-write-buffer.js -test/js/node/test/parallel/test-fs-write-file-buffer.js -test/js/node/test/parallel/test-fs-write-file-flush.js -test/js/node/test/parallel/test-fs-write-file-invalid-path.js -test/js/node/test/parallel/test-fs-write-file-sync.js -test/js/node/test/parallel/test-fs-write-file-typedarrays.js -test/js/node/test/parallel/test-fs-write-file.js -test/js/node/test/parallel/test-fs-write-negativeoffset.js -test/js/node/test/parallel/test-fs-write-no-fd.js -test/js/node/test/parallel/test-fs-write-optional-params.js -test/js/node/test/parallel/test-fs-write-reuse-callback.js -test/js/node/test/parallel/test-fs-write-sigxfsz.js -test/js/node/test/parallel/test-fs-write-stream-autoclose-option.js -test/js/node/test/parallel/test-fs-write-stream-change-open.js -test/js/node/test/parallel/test-fs-write-stream-close-without-callback.js -test/js/node/test/parallel/test-fs-write-stream-double-close.js -test/js/node/test/parallel/test-fs-write-stream-encoding.js -test/js/node/test/parallel/test-fs-write-stream-end.js -test/js/node/test/parallel/test-fs-write-stream-err.js -test/js/node/test/parallel/test-fs-write-stream-file-handle-2.js -test/js/node/test/parallel/test-fs-write-stream-file-handle.js -test/js/node/test/parallel/test-fs-write-stream-flush.js -test/js/node/test/parallel/test-fs-write-stream-fs.js -test/js/node/test/parallel/test-fs-write-stream-patch-open.js -test/js/node/test/parallel/test-fs-write-stream-throw-type-error.js -test/js/node/test/parallel/test-fs-write-stream.js -test/js/node/test/parallel/test-fs-write-sync.js -test/js/node/test/parallel/test-fs-writefile-with-fd.js -test/js/node/test/parallel/test-fs-writestream-open-write.js -test/js/node/test/parallel/test-fs-writev-promises.js -test/js/node/test/parallel/test-fs-writev-sync.js -test/js/node/test/parallel/test-fs-writev.js test/js/node/test/parallel/test-gc-http-client-connaborted.js test/js/node/test/parallel/test-global-domexception.js test/js/node/test/parallel/test-global-encoder.js From 171a6e0b62d91854877b874b0d246e5ada99c430 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sat, 13 Sep 2025 17:04:56 -0700 Subject: [PATCH 19/60] node:stream --- test/no-validate-leaksan.txt | 185 ----------------------------------- 1 file changed, 185 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 3060bbc7518..bbf88afa536 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1404,196 +1404,11 @@ test/js/node/test/parallel/test-stdout-pipeline-destroy.js test/js/node/test/parallel/test-stdout-stderr-reading.js test/js/node/test/parallel/test-stdout-stderr-write.js test/js/node/test/parallel/test-stdout-to-file.js -test/js/node/test/parallel/test-stream-aliases-legacy.js -test/js/node/test/parallel/test-stream-auto-destroy.js -test/js/node/test/parallel/test-stream-await-drain-writers-in-synchronously-recursion-write.js -test/js/node/test/parallel/test-stream-backpressure.js -test/js/node/test/parallel/test-stream-base-prototype-accessors-enumerability.js -test/js/node/test/parallel/test-stream-big-packet.js -test/js/node/test/parallel/test-stream-big-push.js -test/js/node/test/parallel/test-stream-catch-rejections.js -test/js/node/test/parallel/test-stream-compose-operator.js -test/js/node/test/parallel/test-stream-compose.js -test/js/node/test/parallel/test-stream-construct.js -test/js/node/test/parallel/test-stream-consumers.js -test/js/node/test/parallel/test-stream-decoder-objectmode.js -test/js/node/test/parallel/test-stream-destroy-event-order.js -test/js/node/test/parallel/test-stream-drop-take.js -test/js/node/test/parallel/test-stream-duplex-destroy.js -test/js/node/test/parallel/test-stream-duplex-end.js -test/js/node/test/parallel/test-stream-duplex-from.js -test/js/node/test/parallel/test-stream-duplex-props.js -test/js/node/test/parallel/test-stream-duplex-readable-end.js -test/js/node/test/parallel/test-stream-duplex-readable-writable.js -test/js/node/test/parallel/test-stream-duplex-writable-finished.js -test/js/node/test/parallel/test-stream-duplex.js -test/js/node/test/parallel/test-stream-duplexpair.js -test/js/node/test/parallel/test-stream-end-of-streams.js -test/js/node/test/parallel/test-stream-end-paused.js -test/js/node/test/parallel/test-stream-err-multiple-callback-construction.js -test/js/node/test/parallel/test-stream-error-once.js -test/js/node/test/parallel/test-stream-event-names.js -test/js/node/test/parallel/test-stream-events-prepend.js -test/js/node/test/parallel/test-stream-filter.js test/js/node/test/parallel/test-stream-finished.js -test/js/node/test/parallel/test-stream-flatMap.js -test/js/node/test/parallel/test-stream-forEach.js -test/js/node/test/parallel/test-stream-inheritance.js -test/js/node/test/parallel/test-stream-ispaused.js test/js/node/test/parallel/test-stream-iterator-helpers-test262-tests.mjs -test/js/node/test/parallel/test-stream-map.js -test/js/node/test/parallel/test-stream-objectmode-undefined.js -test/js/node/test/parallel/test-stream-once-readable-pipe.js -test/js/node/test/parallel/test-stream-passthrough-drain.js -test/js/node/test/parallel/test-stream-pipe-after-end.js -test/js/node/test/parallel/test-stream-pipe-await-drain-manual-resume.js -test/js/node/test/parallel/test-stream-pipe-await-drain-push-while-write.js -test/js/node/test/parallel/test-stream-pipe-await-drain.js -test/js/node/test/parallel/test-stream-pipe-cleanup-pause.js -test/js/node/test/parallel/test-stream-pipe-cleanup.js -test/js/node/test/parallel/test-stream-pipe-deadlock.js -test/js/node/test/parallel/test-stream-pipe-error-handling.js -test/js/node/test/parallel/test-stream-pipe-error-unhandled.js -test/js/node/test/parallel/test-stream-pipe-event.js -test/js/node/test/parallel/test-stream-pipe-flow-after-unpipe.js -test/js/node/test/parallel/test-stream-pipe-flow.js -test/js/node/test/parallel/test-stream-pipe-manual-resume.js -test/js/node/test/parallel/test-stream-pipe-multiple-pipes.js -test/js/node/test/parallel/test-stream-pipe-needDrain.js -test/js/node/test/parallel/test-stream-pipe-same-destination-twice.js -test/js/node/test/parallel/test-stream-pipe-unpipe-streams.js -test/js/node/test/parallel/test-stream-pipe-without-listenerCount.js -test/js/node/test/parallel/test-stream-pipeline-async-iterator.js -test/js/node/test/parallel/test-stream-pipeline-duplex.js -test/js/node/test/parallel/test-stream-pipeline-listeners.js -test/js/node/test/parallel/test-stream-pipeline-process.js -test/js/node/test/parallel/test-stream-pipeline-queued-end-in-destroy.js -test/js/node/test/parallel/test-stream-pipeline-uncaught.js -test/js/node/test/parallel/test-stream-pipeline-with-empty-string.js -test/js/node/test/parallel/test-stream-preprocess.js -test/js/node/test/parallel/test-stream-promises.js -test/js/node/test/parallel/test-stream-push-order.js -test/js/node/test/parallel/test-stream-push-strings.js -test/js/node/test/parallel/test-stream-readable-aborted.js -test/js/node/test/parallel/test-stream-readable-add-chunk-during-data.js -test/js/node/test/parallel/test-stream-readable-constructor-set-methods.js -test/js/node/test/parallel/test-stream-readable-data.js -test/js/node/test/parallel/test-stream-readable-default-encoding.js -test/js/node/test/parallel/test-stream-readable-destroy.js -test/js/node/test/parallel/test-stream-readable-didRead.js -test/js/node/test/parallel/test-stream-readable-dispose.js -test/js/node/test/parallel/test-stream-readable-emit-readable-short-stream.js -test/js/node/test/parallel/test-stream-readable-emittedReadable.js -test/js/node/test/parallel/test-stream-readable-end-destroyed.js -test/js/node/test/parallel/test-stream-readable-ended.js -test/js/node/test/parallel/test-stream-readable-error-end.js -test/js/node/test/parallel/test-stream-readable-event.js -test/js/node/test/parallel/test-stream-readable-flow-recursion.js -test/js/node/test/parallel/test-stream-readable-from-web-termination.js -test/js/node/test/parallel/test-stream-readable-hwm-0-async.js -test/js/node/test/parallel/test-stream-readable-hwm-0-no-flow-data.js -test/js/node/test/parallel/test-stream-readable-hwm-0.js -test/js/node/test/parallel/test-stream-readable-infinite-read.js -test/js/node/test/parallel/test-stream-readable-invalid-chunk.js -test/js/node/test/parallel/test-stream-readable-needReadable.js -test/js/node/test/parallel/test-stream-readable-next-no-null.js -test/js/node/test/parallel/test-stream-readable-no-unneeded-readable.js -test/js/node/test/parallel/test-stream-readable-object-multi-push-async.js -test/js/node/test/parallel/test-stream-readable-pause-and-resume.js -test/js/node/test/parallel/test-stream-readable-readable-then-resume.js -test/js/node/test/parallel/test-stream-readable-readable.js -test/js/node/test/parallel/test-stream-readable-reading-readingMore.js -test/js/node/test/parallel/test-stream-readable-resume-hwm.js -test/js/node/test/parallel/test-stream-readable-resumeScheduled.js -test/js/node/test/parallel/test-stream-readable-setEncoding-existing-buffers.js -test/js/node/test/parallel/test-stream-readable-setEncoding-null.js -test/js/node/test/parallel/test-stream-readable-strategy-option.js -test/js/node/test/parallel/test-stream-readable-to-web-termination.js test/js/node/test/parallel/test-stream-readable-to-web.js -test/js/node/test/parallel/test-stream-readable-unpipe-resume.js -test/js/node/test/parallel/test-stream-readable-unshift.js -test/js/node/test/parallel/test-stream-readable-with-unimplemented-_read.js -test/js/node/test/parallel/test-stream-readableListening-state.js -test/js/node/test/parallel/test-stream-reduce.js -test/js/node/test/parallel/test-stream-set-default-hwm.js test/js/node/test/parallel/test-stream-some-find-every.mjs -test/js/node/test/parallel/test-stream-toArray.js test/js/node/test/parallel/test-stream-toWeb-allows-server-response.js -test/js/node/test/parallel/test-stream-transform-callback-twice.js -test/js/node/test/parallel/test-stream-transform-constructor-set-methods.js -test/js/node/test/parallel/test-stream-transform-destroy.js -test/js/node/test/parallel/test-stream-transform-final-sync.js -test/js/node/test/parallel/test-stream-transform-final.js -test/js/node/test/parallel/test-stream-transform-flush-data.js -test/js/node/test/parallel/test-stream-transform-hwm0.js -test/js/node/test/parallel/test-stream-transform-objectmode-falsey-value.js -test/js/node/test/parallel/test-stream-transform-split-highwatermark.js -test/js/node/test/parallel/test-stream-transform-split-objectmode.js -test/js/node/test/parallel/test-stream-typedarray.js -test/js/node/test/parallel/test-stream-uint8array.js -test/js/node/test/parallel/test-stream-unpipe-event.js -test/js/node/test/parallel/test-stream-unshift-empty-chunk.js -test/js/node/test/parallel/test-stream-unshift-read-race.js -test/js/node/test/parallel/test-stream-writable-aborted.js -test/js/node/test/parallel/test-stream-writable-change-default-encoding.js -test/js/node/test/parallel/test-stream-writable-clear-buffer.js -test/js/node/test/parallel/test-stream-writable-constructor-set-methods.js -test/js/node/test/parallel/test-stream-writable-decoded-encoding.js -test/js/node/test/parallel/test-stream-writable-destroy.js -test/js/node/test/parallel/test-stream-writable-end-cb-error.js -test/js/node/test/parallel/test-stream-writable-end-cb-uncaught.js -test/js/node/test/parallel/test-stream-writable-end-multiple.js -test/js/node/test/parallel/test-stream-writable-ended-state.js -test/js/node/test/parallel/test-stream-writable-final-async.js -test/js/node/test/parallel/test-stream-writable-final-destroy.js -test/js/node/test/parallel/test-stream-writable-final-throw.js -test/js/node/test/parallel/test-stream-writable-finish-destroyed.js -test/js/node/test/parallel/test-stream-writable-finished-state.js -test/js/node/test/parallel/test-stream-writable-finished.js -test/js/node/test/parallel/test-stream-writable-invalid-chunk.js -test/js/node/test/parallel/test-stream-writable-needdrain-state.js -test/js/node/test/parallel/test-stream-writable-null.js -test/js/node/test/parallel/test-stream-writable-properties.js -test/js/node/test/parallel/test-stream-writable-writable.js -test/js/node/test/parallel/test-stream-writable-write-cb-error.js -test/js/node/test/parallel/test-stream-writable-write-cb-twice.js -test/js/node/test/parallel/test-stream-writable-write-error.js -test/js/node/test/parallel/test-stream-writable-write-writev-finish.js -test/js/node/test/parallel/test-stream-writableState-ending.js -test/js/node/test/parallel/test-stream-writableState-uncorked-bufferedRequestCount.js -test/js/node/test/parallel/test-stream-write-destroy.js -test/js/node/test/parallel/test-stream-write-drain.js -test/js/node/test/parallel/test-stream-write-final.js -test/js/node/test/parallel/test-stream-writev.js -test/js/node/test/parallel/test-stream2-base64-single-char-read-end.js -test/js/node/test/parallel/test-stream2-basic.js -test/js/node/test/parallel/test-stream2-compatibility.js -test/js/node/test/parallel/test-stream2-decode-partial.js -test/js/node/test/parallel/test-stream2-finish-pipe-error.js -test/js/node/test/parallel/test-stream2-finish-pipe.js -test/js/node/test/parallel/test-stream2-large-read-stall.js -test/js/node/test/parallel/test-stream2-objects.js -test/js/node/test/parallel/test-stream2-pipe-error-handling.js -test/js/node/test/parallel/test-stream2-pipe-error-once-listener.js -test/js/node/test/parallel/test-stream2-push.js -test/js/node/test/parallel/test-stream2-read-sync-stack.js -test/js/node/test/parallel/test-stream2-readable-empty-buffer-no-eof.js -test/js/node/test/parallel/test-stream2-readable-legacy-drain.js -test/js/node/test/parallel/test-stream2-readable-non-empty-end.js -test/js/node/test/parallel/test-stream2-readable-wrap-destroy.js -test/js/node/test/parallel/test-stream2-readable-wrap-empty.js -test/js/node/test/parallel/test-stream2-readable-wrap-error.js -test/js/node/test/parallel/test-stream2-readable-wrap.js -test/js/node/test/parallel/test-stream2-set-encoding.js -test/js/node/test/parallel/test-stream2-transform.js -test/js/node/test/parallel/test-stream2-unpipe-drain.js -test/js/node/test/parallel/test-stream2-unpipe-leak.js -test/js/node/test/parallel/test-stream2-writable.js -test/js/node/test/parallel/test-stream3-cork-end.js -test/js/node/test/parallel/test-stream3-cork-uncork.js -test/js/node/test/parallel/test-stream3-pause-then-read.js -test/js/node/test/parallel/test-stream3-pipeline-async-iterator.js -test/js/node/test/parallel/test-streams-highwatermark.js test/js/node/test/parallel/test-string-decoder-end.js test/js/node/test/parallel/test-string-decoder-fuzz.js test/js/node/test/parallel/test-string-decoder.js From 8a5f5b1bc336ae403dc65cafed1ffb14081fffe0 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 Sep 2025 01:17:29 -0700 Subject: [PATCH 20/60] node:timers --- test/no-validate-leaksan.txt | 53 ------------------------------------ 1 file changed, 53 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index bbf88afa536..773c25d1f6d 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1415,62 +1415,9 @@ test/js/node/test/parallel/test-string-decoder.js test/js/node/test/parallel/test-stringbytes-external.js test/js/node/test/parallel/test-sync-fileread.js test/js/node/test/parallel/test-sys.js -test/js/node/test/parallel/test-timers-api-refs.js -test/js/node/test/parallel/test-timers-args.js -test/js/node/test/parallel/test-timers-clear-null-does-not-throw-error.js -test/js/node/test/parallel/test-timers-clear-object-does-not-throw-error.js -test/js/node/test/parallel/test-timers-clear-timeout-interval-equivalent.js -test/js/node/test/parallel/test-timers-clearImmediate-als.js -test/js/node/test/parallel/test-timers-clearImmediate.js -test/js/node/test/parallel/test-timers-destroyed.js -test/js/node/test/parallel/test-timers-dispose.js test/js/node/test/parallel/test-timers-immediate-promisified.js -test/js/node/test/parallel/test-timers-immediate-queue-throw.js -test/js/node/test/parallel/test-timers-immediate-queue.js -test/js/node/test/parallel/test-timers-immediate-unref-nested-once.js -test/js/node/test/parallel/test-timers-immediate-unref-simple.js -test/js/node/test/parallel/test-timers-immediate-unref.js -test/js/node/test/parallel/test-timers-immediate.js test/js/node/test/parallel/test-timers-interval-promisified.js -test/js/node/test/parallel/test-timers-interval-throw.js -test/js/node/test/parallel/test-timers-invalid-clear.js -test/js/node/test/parallel/test-timers-linked-list.js -test/js/node/test/parallel/test-timers-max-duration-warning.js -test/js/node/test/parallel/test-timers-nan-duration-emit-once-per-process.js -test/js/node/test/parallel/test-timers-nan-duration-warning-promises.js -test/js/node/test/parallel/test-timers-nan-duration-warning.js -test/js/node/test/parallel/test-timers-negative-duration-warning-emit-once-per-process.js -test/js/node/test/parallel/test-timers-negative-duration-warning.js -test/js/node/test/parallel/test-timers-nested.js -test/js/node/test/parallel/test-timers-next-tick.js -test/js/node/test/parallel/test-timers-non-integer-delay.js -test/js/node/test/parallel/test-timers-not-emit-duration-zero.js -test/js/node/test/parallel/test-timers-now.js -test/js/node/test/parallel/test-timers-ordering.js -test/js/node/test/parallel/test-timers-process-tampering.js -test/js/node/test/parallel/test-timers-promises-scheduler.js -test/js/node/test/parallel/test-timers-promises.js -test/js/node/test/parallel/test-timers-refresh-in-callback.js -test/js/node/test/parallel/test-timers-refresh.js -test/js/node/test/parallel/test-timers-same-timeout-wrong-list-deleted.js -test/js/node/test/parallel/test-timers-setimmediate-infinite-loop.js -test/js/node/test/parallel/test-timers-socket-timeout-removes-other-socket-unref-timer.js -test/js/node/test/parallel/test-timers-this.js -test/js/node/test/parallel/test-timers-throw-when-cb-not-function.js test/js/node/test/parallel/test-timers-timeout-promisified.js -test/js/node/test/parallel/test-timers-timeout-to-interval.js -test/js/node/test/parallel/test-timers-timeout-with-non-integer.js -test/js/node/test/parallel/test-timers-to-primitive.js -test/js/node/test/parallel/test-timers-uncaught-exception.js -test/js/node/test/parallel/test-timers-unenroll-unref-interval.js -test/js/node/test/parallel/test-timers-unref-throw-then-ref.js -test/js/node/test/parallel/test-timers-unref.js -test/js/node/test/parallel/test-timers-unrefd-interval-still-fires.js -test/js/node/test/parallel/test-timers-unrefed-in-beforeexit.js -test/js/node/test/parallel/test-timers-unrefed-in-callback.js -test/js/node/test/parallel/test-timers-user-call.js -test/js/node/test/parallel/test-timers-zero-timeout.js -test/js/node/test/parallel/test-timers.js test/js/node/test/parallel/test-tls-0-dns-altname.js test/js/node/test/parallel/test-tls-add-context.js test/js/node/test/parallel/test-tls-alert-handling.js From 7969fcf11e766f9701cf065f81b26dbef0c555b0 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 Sep 2025 01:33:04 -0700 Subject: [PATCH 21/60] node:tls --- test/leaksan.supp | 3 ++ test/no-validate-leaksan.txt | 81 ------------------------------------ 2 files changed, 3 insertions(+), 81 deletions(-) diff --git a/test/leaksan.supp b/test/leaksan.supp index d77277aa7f2..af81d1ee2a4 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -19,3 +19,6 @@ leak:JSCInitialize leak:getaddrinfo_send_reply leak:start_wqthread leak:CRYPTO_set_thread_local +leak:BIO_new +leak:_tlv_get_addr +leak:Bun::generateModule diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 773c25d1f6d..301ef5c8072 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1418,87 +1418,6 @@ test/js/node/test/parallel/test-sys.js test/js/node/test/parallel/test-timers-immediate-promisified.js test/js/node/test/parallel/test-timers-interval-promisified.js test/js/node/test/parallel/test-timers-timeout-promisified.js -test/js/node/test/parallel/test-tls-0-dns-altname.js -test/js/node/test/parallel/test-tls-add-context.js -test/js/node/test/parallel/test-tls-alert-handling.js -test/js/node/test/parallel/test-tls-alert.js -test/js/node/test/parallel/test-tls-ca-concat.js -test/js/node/test/parallel/test-tls-cert-ext-encoding.js -test/js/node/test/parallel/test-tls-cert-regression.js -test/js/node/test/parallel/test-tls-check-server-identity.js -test/js/node/test/parallel/test-tls-client-abort.js -test/js/node/test/parallel/test-tls-client-abort2.js -test/js/node/test/parallel/test-tls-client-destroy-soon.js -test/js/node/test/parallel/test-tls-client-renegotiation-limit.js -test/js/node/test/parallel/test-tls-client-verify.js -test/js/node/test/parallel/test-tls-close-error.js -test/js/node/test/parallel/test-tls-close-event-after-write.js -test/js/node/test/parallel/test-tls-connect-abort-controller.js -test/js/node/test/parallel/test-tls-connect-address-family.js -test/js/node/test/parallel/test-tls-connect-hints-option.js -test/js/node/test/parallel/test-tls-connect-hwm-option.js -test/js/node/test/parallel/test-tls-connect-no-host.js -test/js/node/test/parallel/test-tls-connect-pipe.js -test/js/node/test/parallel/test-tls-connect-secure-context.js -test/js/node/test/parallel/test-tls-connect-simple.js -test/js/node/test/parallel/test-tls-destroy-whilst-write.js -test/js/node/test/parallel/test-tls-dhe.js -test/js/node/test/parallel/test-tls-ecdh-auto.js -test/js/node/test/parallel/test-tls-ecdh-multiple.js -test/js/node/test/parallel/test-tls-ecdh.js -test/js/node/test/parallel/test-tls-econnreset.js -test/js/node/test/parallel/test-tls-env-extra-ca-no-crypto.js -test/js/node/test/parallel/test-tls-fast-writing.js -test/js/node/test/parallel/test-tls-friendly-error-message.js -test/js/node/test/parallel/test-tls-get-ca-certificates-bundled-subset.js -test/js/node/test/parallel/test-tls-get-ca-certificates-bundled.js -test/js/node/test/parallel/test-tls-get-ca-certificates-default.js -test/js/node/test/parallel/test-tls-get-ca-certificates-error.js -test/js/node/test/parallel/test-tls-get-ca-certificates-extra-empty.js -test/js/node/test/parallel/test-tls-get-ca-certificates-extra-subset.js -test/js/node/test/parallel/test-tls-get-ca-certificates-extra.js -test/js/node/test/parallel/test-tls-handshake-error.js -test/js/node/test/parallel/test-tls-inception.js -test/js/node/test/parallel/test-tls-interleave.js -test/js/node/test/parallel/test-tls-invoke-queued.js -test/js/node/test/parallel/test-tls-junk-closes-server.js -test/js/node/test/parallel/test-tls-keyengine-invalid-arg-type.js -test/js/node/test/parallel/test-tls-legacy-pfx.js -test/js/node/test/parallel/test-tls-multiple-cas-as-string.js -test/js/node/test/parallel/test-tls-net-connect-prefer-path.js -test/js/node/test/parallel/test-tls-no-rsa-key.js -test/js/node/test/parallel/test-tls-no-sslv3.js -test/js/node/test/parallel/test-tls-ocsp-callback.js -test/js/node/test/parallel/test-tls-on-empty-socket.js -test/js/node/test/parallel/test-tls-options-boolean-check.js -test/js/node/test/parallel/test-tls-peer-certificate-encoding.js -test/js/node/test/parallel/test-tls-peer-certificate-multi-keys.js -test/js/node/test/parallel/test-tls-psk-server.js -test/js/node/test/parallel/test-tls-request-timeout.js -test/js/node/test/parallel/test-tls-reuse-host-from-socket.js -test/js/node/test/parallel/test-tls-root-certificates.js -test/js/node/test/parallel/test-tls-secure-context-usage-order.js -test/js/node/test/parallel/test-tls-securepair-server.js -test/js/node/test/parallel/test-tls-server-connection-server.js -test/js/node/test/parallel/test-tls-server-verify.js -test/js/node/test/parallel/test-tls-session-cache.js -test/js/node/test/parallel/test-tls-set-ciphers-error.js -test/js/node/test/parallel/test-tls-set-ciphers.js -test/js/node/test/parallel/test-tls-set-encoding.js -test/js/node/test/parallel/test-tls-sni-server-client.js -test/js/node/test/parallel/test-tls-socket-allow-half-open-option.js -test/js/node/test/parallel/test-tls-startcom-wosign-whitelist.js -test/js/node/test/parallel/test-tls-timeout-server-2.js -test/js/node/test/parallel/test-tls-tlswrap-segfault-2.js -test/js/node/test/parallel/test-tls-tlswrap-segfault.js -test/js/node/test/parallel/test-tls-translate-peer-certificate.js -test/js/node/test/parallel/test-tls-transport-destroy-after-own-gc.js -test/js/node/test/parallel/test-tls-use-after-free-regression.js -test/js/node/test/parallel/test-tls-wrap-econnreset-localaddress.js -test/js/node/test/parallel/test-tls-wrap-econnreset-socket.js -test/js/node/test/parallel/test-tls-wrap-econnreset.js -test/js/node/test/parallel/test-tls-write-error.js -test/js/node/test/parallel/test-tls-zero-clear-in.js test/js/node/test/parallel/test-tty-backwards-api.js test/js/node/test/parallel/test-tty-stdin-end.js test/js/node/test/parallel/test-tty-stdin-pipe.js From 7e89c83b9854d9673618102aaff2a98d321ee91f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 Sep 2025 01:42:53 -0700 Subject: [PATCH 22/60] node:util --- test/no-validate-leaksan.txt | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 301ef5c8072..ec94960ee1a 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1436,27 +1436,7 @@ test/js/node/test/parallel/test-url-relative.js test/js/node/test/parallel/test-url-revokeobjecturl.js test/js/node/test/parallel/test-url-urltooptions.js test/js/node/test/parallel/test-utf8-scripts.js -test/js/node/test/parallel/test-util-callbackify.js -test/js/node/test/parallel/test-util-deprecate-invalid-code.js -test/js/node/test/parallel/test-util-deprecate.js -test/js/node/test/parallel/test-util-emit-experimental-warning.js -test/js/node/test/parallel/test-util-inherits.js -test/js/node/test/parallel/test-util-inspect-getters-accessing-this.js -test/js/node/test/parallel/test-util-inspect-long-running.js -test/js/node/test/parallel/test-util-inspect-proxy.js -test/js/node/test/parallel/test-util-internal.js -test/js/node/test/parallel/test-util-parse-env.js -test/js/node/test/parallel/test-util-primordial-monkeypatching.js test/js/node/test/parallel/test-util-promisify-custom-names.mjs -test/js/node/test/parallel/test-util-promisify.js -test/js/node/test/parallel/test-util-sigint-watchdog.js -test/js/node/test/parallel/test-util-sleep.js -test/js/node/test/parallel/test-util-stripvtcontrolcharacters.js -test/js/node/test/parallel/test-util-styletext.js -test/js/node/test/parallel/test-util-text-decoder.js -test/js/node/test/parallel/test-util-types-exists.js -test/js/node/test/parallel/test-util-types.js -test/js/node/test/parallel/test-util.js test/js/node/test/parallel/test-v8-deserialize-buffer.js test/js/node/test/parallel/test-v8-flag-pool-size-0.js test/js/node/test/parallel/test-v8-getheapsnapshot-twice.js From a620f5225f810e631b53dc64d6c1b85c0d7ce183 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 Sep 2025 01:44:25 -0700 Subject: [PATCH 23/60] node:v8 --- test/no-validate-leaksan.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index ec94960ee1a..356e1f487d3 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1437,11 +1437,6 @@ test/js/node/test/parallel/test-url-revokeobjecturl.js test/js/node/test/parallel/test-url-urltooptions.js test/js/node/test/parallel/test-utf8-scripts.js test/js/node/test/parallel/test-util-promisify-custom-names.mjs -test/js/node/test/parallel/test-v8-deserialize-buffer.js -test/js/node/test/parallel/test-v8-flag-pool-size-0.js -test/js/node/test/parallel/test-v8-getheapsnapshot-twice.js -test/js/node/test/parallel/test-v8-global-setter.js -test/js/node/test/parallel/test-v8-serialize-leak.js test/js/node/test/parallel/test-vm-access-process-env.js test/js/node/test/parallel/test-vm-api-handles-getter-errors.js test/js/node/test/parallel/test-vm-attributes-property-not-on-sandbox.js From c5ccf75fb6a7f93f520bd45a789817a7e247564f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 Sep 2025 01:53:36 -0700 Subject: [PATCH 24/60] node:vm --- test/leaksan.supp | 2 + test/no-validate-leaksan.txt | 73 ------------------------------------ 2 files changed, 2 insertions(+), 73 deletions(-) diff --git a/test/leaksan.supp b/test/leaksan.supp index af81d1ee2a4..3f3b2681272 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -22,3 +22,5 @@ leak:CRYPTO_set_thread_local leak:BIO_new leak:_tlv_get_addr leak:Bun::generateModule +leak:Zig::ImportMetaObject::createFromSpecifier +leak:Zig::GlobalObject::moduleLoaderResolve diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 356e1f487d3..dc39e83159f 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1437,79 +1437,6 @@ test/js/node/test/parallel/test-url-revokeobjecturl.js test/js/node/test/parallel/test-url-urltooptions.js test/js/node/test/parallel/test-utf8-scripts.js test/js/node/test/parallel/test-util-promisify-custom-names.mjs -test/js/node/test/parallel/test-vm-access-process-env.js -test/js/node/test/parallel/test-vm-api-handles-getter-errors.js -test/js/node/test/parallel/test-vm-attributes-property-not-on-sandbox.js -test/js/node/test/parallel/test-vm-basic.js -test/js/node/test/parallel/test-vm-cached-data.js -test/js/node/test/parallel/test-vm-context-async-script.js -test/js/node/test/parallel/test-vm-context-dont-contextify.js -test/js/node/test/parallel/test-vm-context-property-forwarding.js -test/js/node/test/parallel/test-vm-context.js -test/js/node/test/parallel/test-vm-create-and-run-in-context.js -test/js/node/test/parallel/test-vm-create-context-accessors.js -test/js/node/test/parallel/test-vm-create-context-arg.js -test/js/node/test/parallel/test-vm-create-context-circular-reference.js -test/js/node/test/parallel/test-vm-createcacheddata.js -test/js/node/test/parallel/test-vm-cross-context.js -test/js/node/test/parallel/test-vm-data-property-writable.js -test/js/node/test/parallel/test-vm-deleting-property.js -test/js/node/test/parallel/test-vm-function-declaration.js -test/js/node/test/parallel/test-vm-function-redefinition.js -test/js/node/test/parallel/test-vm-getters.js -test/js/node/test/parallel/test-vm-global-assignment.js -test/js/node/test/parallel/test-vm-global-configurable-properties.js -test/js/node/test/parallel/test-vm-global-define-property.js -test/js/node/test/parallel/test-vm-global-get-own.js -test/js/node/test/parallel/test-vm-global-non-writable-properties.js -test/js/node/test/parallel/test-vm-global-property-enumerator.js -test/js/node/test/parallel/test-vm-global-property-interceptors.js -test/js/node/test/parallel/test-vm-global-property-prototype.js -test/js/node/test/parallel/test-vm-global-setter.js -test/js/node/test/parallel/test-vm-harmony-symbols.js -test/js/node/test/parallel/test-vm-indexed-properties.js -test/js/node/test/parallel/test-vm-inherited_properties.js -test/js/node/test/parallel/test-vm-is-context.js -test/js/node/test/parallel/test-vm-low-stack-space.js -test/js/node/test/parallel/test-vm-module-basic.js -test/js/node/test/parallel/test-vm-module-cached-data.js -test/js/node/test/parallel/test-vm-module-dynamic-import.js -test/js/node/test/parallel/test-vm-module-dynamic-namespace.js -test/js/node/test/parallel/test-vm-module-errors.js -test/js/node/test/parallel/test-vm-module-import-meta.js -test/js/node/test/parallel/test-vm-module-link.js -test/js/node/test/parallel/test-vm-module-reevaluate.js -test/js/node/test/parallel/test-vm-module-referrer-realm.mjs -test/js/node/test/parallel/test-vm-module-synthetic.js -test/js/node/test/parallel/test-vm-new-script-context.js -test/js/node/test/parallel/test-vm-new-script-new-context.js -test/js/node/test/parallel/test-vm-new-script-this-context.js -test/js/node/test/parallel/test-vm-no-dynamic-import-callback.js -test/js/node/test/parallel/test-vm-not-strict.js -test/js/node/test/parallel/test-vm-options-validation.js -test/js/node/test/parallel/test-vm-ownkeys.js -test/js/node/test/parallel/test-vm-ownpropertynames.js -test/js/node/test/parallel/test-vm-ownpropertysymbols.js -test/js/node/test/parallel/test-vm-parse-abort-on-uncaught-exception.js -test/js/node/test/parallel/test-vm-preserves-property.js -test/js/node/test/parallel/test-vm-proxies.js -test/js/node/test/parallel/test-vm-proxy-failure-CP.js -test/js/node/test/parallel/test-vm-run-in-new-context.js -test/js/node/test/parallel/test-vm-script-throw-in-tostring.js -test/js/node/test/parallel/test-vm-set-property-proxy.js -test/js/node/test/parallel/test-vm-set-proto-null-on-globalthis.js -test/js/node/test/parallel/test-vm-sigint-existing-handler.js -test/js/node/test/parallel/test-vm-sigint.js -test/js/node/test/parallel/test-vm-static-this.js -test/js/node/test/parallel/test-vm-strict-assign.js -test/js/node/test/parallel/test-vm-strict-mode.js -test/js/node/test/parallel/test-vm-symbols.js -test/js/node/test/parallel/test-vm-syntax-error-message.js -test/js/node/test/parallel/test-vm-syntax-error-stderr.js -test/js/node/test/parallel/test-vm-timeout-escape-promise-module.js -test/js/node/test/parallel/test-vm-timeout-escape-promise.js -test/js/node/test/parallel/test-vm-timeout.js -test/js/node/test/parallel/test-vm-util-lazy-properties.js test/js/node/test/parallel/test-warn-stream-wrap.js test/js/node/test/parallel/test-weakref.js test/js/node/test/parallel/test-webcrypto-cryptokey-workers.js From 459d0c86f9b6a365ad2358acb7e8305760a33e1c Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 Sep 2025 01:59:13 -0700 Subject: [PATCH 25/60] node:whatwg --- test/leaksan.supp | 3 +++ test/no-validate-leaksan.txt | 43 ------------------------------------ 2 files changed, 3 insertions(+), 43 deletions(-) diff --git a/test/leaksan.supp b/test/leaksan.supp index 3f3b2681272..f6c4472a9be 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -24,3 +24,6 @@ leak:_tlv_get_addr leak:Bun::generateModule leak:Zig::ImportMetaObject::createFromSpecifier leak:Zig::GlobalObject::moduleLoaderResolve +leak:JSModuleLoader__import +leak:dyld::ThreadLocalVariables +leak:JSC__JSModuleLoader__loadAndEvaluateModule diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index dc39e83159f..c170e133714 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1452,49 +1452,6 @@ test/js/node/test/parallel/test-webcrypto-sign-verify.js test/js/node/test/parallel/test-webcrypto-wrap-unwrap.js test/js/node/test/parallel/test-websocket.js test/js/node/test/parallel/test-webstream-string-tag.js -test/js/node/test/parallel/test-whatwg-encoding-custom-api-basics.js -test/js/node/test/parallel/test-whatwg-encoding-custom-fatal-streaming.js -test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-api-invalid-label.js -test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-fatal.js -test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-ignorebom.js -test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-invalid-arg.js -test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-streaming.js -test/js/node/test/parallel/test-whatwg-encoding-custom-textdecoder-utf16-surrogates.js -test/js/node/test/parallel/test-whatwg-events-add-event-listener-options-passive.js -test/js/node/test/parallel/test-whatwg-events-add-event-listener-options-signal.js -test/js/node/test/parallel/test-whatwg-events-customevent.js -test/js/node/test/parallel/test-whatwg-events-event-constructors.js -test/js/node/test/parallel/test-whatwg-events-eventtarget-this-of-listener.js -test/js/node/test/parallel/test-whatwg-readablebytestream.js -test/js/node/test/parallel/test-whatwg-readablebytestreambyob.js -test/js/node/test/parallel/test-whatwg-readablestream.mjs -test/js/node/test/parallel/test-whatwg-url-canparse.js -test/js/node/test/parallel/test-whatwg-url-custom-deepequal.js -test/js/node/test/parallel/test-whatwg-url-custom-domainto.js -test/js/node/test/parallel/test-whatwg-url-custom-global.js -test/js/node/test/parallel/test-whatwg-url-custom-href-side-effect.js -test/js/node/test/parallel/test-whatwg-url-custom-inspect.js -test/js/node/test/parallel/test-whatwg-url-custom-parsing.js -test/js/node/test/parallel/test-whatwg-url-custom-properties.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-append.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-delete.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-entries.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-foreach.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-get.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-getall.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-has.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-keys.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-set.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-sort.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-stringifier.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams-values.js -test/js/node/test/parallel/test-whatwg-url-custom-searchparams.js -test/js/node/test/parallel/test-whatwg-url-custom-setters.js -test/js/node/test/parallel/test-whatwg-url-custom-tostringtag.js -test/js/node/test/parallel/test-whatwg-url-invalidthis.js -test/js/node/test/parallel/test-whatwg-url-override-hostname.js -test/js/node/test/parallel/test-whatwg-url-toascii.js -test/js/node/test/parallel/test-whatwg-writablestream-close.js test/js/node/test/parallel/test-windows-abort-exitcode.js test/js/node/test/parallel/test-windows-failed-heap-allocation.js test/js/node/test/parallel/test-worker-abort-on-uncaught-exception.js From 017fd8412695cba569745eb12f97587f9e2bbd8c Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 14 Sep 2025 02:02:28 -0700 Subject: [PATCH 26/60] node:zlib --- test/no-validate-leaksan.txt | 57 ------------------------------------ 1 file changed, 57 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index c170e133714..c661c7d87ef 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1510,63 +1510,6 @@ test/js/node/test/parallel/test-worker-unref-from-message-during-exit.js test/js/node/test/parallel/test-worker-workerdata-sharedarraybuffer.js test/js/node/test/parallel/test-worker.js test/js/node/test/parallel/test-worker.mjs -test/js/node/test/parallel/test-zlib-brotli-16GB.js -test/js/node/test/parallel/test-zlib-brotli-flush.js -test/js/node/test/parallel/test-zlib-brotli-from-brotli.js -test/js/node/test/parallel/test-zlib-brotli-from-string.js -test/js/node/test/parallel/test-zlib-brotli-kmaxlength-rangeerror.js -test/js/node/test/parallel/test-zlib-brotli.js -test/js/node/test/parallel/test-zlib-close-after-error.js -test/js/node/test/parallel/test-zlib-close-after-write.js -test/js/node/test/parallel/test-zlib-close-in-ondata.js -test/js/node/test/parallel/test-zlib-const.js -test/js/node/test/parallel/test-zlib-convenience-methods.js -test/js/node/test/parallel/test-zlib-crc32.js -test/js/node/test/parallel/test-zlib-create-raw.js -test/js/node/test/parallel/test-zlib-deflate-constructors.js -test/js/node/test/parallel/test-zlib-deflate-raw-inherits.js -test/js/node/test/parallel/test-zlib-destroy-pipe.js -test/js/node/test/parallel/test-zlib-destroy.js -test/js/node/test/parallel/test-zlib-dictionary-fail.js -test/js/node/test/parallel/test-zlib-dictionary.js -test/js/node/test/parallel/test-zlib-empty-buffer.js -test/js/node/test/parallel/test-zlib-failed-init.js -test/js/node/test/parallel/test-zlib-flush-drain-longblock.js -test/js/node/test/parallel/test-zlib-flush-drain.js -test/js/node/test/parallel/test-zlib-flush-flags.js -test/js/node/test/parallel/test-zlib-flush-write-sync-interleaved.js -test/js/node/test/parallel/test-zlib-flush.js -test/js/node/test/parallel/test-zlib-from-concatenated-gzip.js -test/js/node/test/parallel/test-zlib-from-gzip-with-trailing-garbage.js -test/js/node/test/parallel/test-zlib-from-gzip.js -test/js/node/test/parallel/test-zlib-from-string.js -test/js/node/test/parallel/test-zlib-invalid-arg-value-brotli-compress.js -test/js/node/test/parallel/test-zlib-invalid-input-memory.js -test/js/node/test/parallel/test-zlib-invalid-input.js -test/js/node/test/parallel/test-zlib-kmaxlength-rangeerror.js -test/js/node/test/parallel/test-zlib-maxOutputLength.js -test/js/node/test/parallel/test-zlib-no-stream.js -test/js/node/test/parallel/test-zlib-not-string-or-buffer.js -test/js/node/test/parallel/test-zlib-object-write.js -test/js/node/test/parallel/test-zlib-params.js -test/js/node/test/parallel/test-zlib-premature-end.js -test/js/node/test/parallel/test-zlib-random-byte-pipes.js -test/js/node/test/parallel/test-zlib-reset-before-write.js -test/js/node/test/parallel/test-zlib-sync-no-event.js -test/js/node/test/parallel/test-zlib-truncated.js -test/js/node/test/parallel/test-zlib-unzip-one-byte-chunks.js -test/js/node/test/parallel/test-zlib-write-after-close.js -test/js/node/test/parallel/test-zlib-write-after-end.js -test/js/node/test/parallel/test-zlib-write-after-flush.js -test/js/node/test/parallel/test-zlib-zero-byte.js -test/js/node/test/parallel/test-zlib-zero-windowBits.js -test/js/node/test/parallel/test-zlib-zstd-flush.js -test/js/node/test/parallel/test-zlib-zstd-from-string.js -test/js/node/test/parallel/test-zlib-zstd-from-zstd.js -test/js/node/test/parallel/test-zlib-zstd-kmaxlength-rangeerror.js -test/js/node/test/parallel/test-zlib-zstd-pledged-src-size.js -test/js/node/test/parallel/test-zlib-zstd.js -test/js/node/test/parallel/test-zlib.js test/js/node/test/sequential/test-child-process-emfile.js test/js/node/test/sequential/test-child-process-execsync.js test/js/node/test/sequential/test-child-process-exit.js From fc3848701b83cec5658e03f781e70fc18b429cff Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 15:15:22 -0700 Subject: [PATCH 27/60] node:readline --- test/no-validate-leaksan.txt | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index c661c7d87ef..a01dbcf353e 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1314,25 +1314,6 @@ test/js/node/test/parallel/test-readable-from-web-enqueue-then-close.js test/js/node/test/parallel/test-readable-from.js test/js/node/test/parallel/test-readable-large-hwm.js test/js/node/test/parallel/test-readable-single-end.js -test/js/node/test/parallel/test-readline-async-iterators-backpressure.js -test/js/node/test/parallel/test-readline-async-iterators-destroy.js -test/js/node/test/parallel/test-readline-async-iterators.js -test/js/node/test/parallel/test-readline-carriage-return-between-chunks.js -test/js/node/test/parallel/test-readline-csi.js -test/js/node/test/parallel/test-readline-emit-keypress-events.js -test/js/node/test/parallel/test-readline-input-onerror.js -test/js/node/test/parallel/test-readline-interface-escapecodetimeout.js -test/js/node/test/parallel/test-readline-interface-no-trailing-newline.js -test/js/node/test/parallel/test-readline-interface-recursive-writes.js -test/js/node/test/parallel/test-readline-keys.js -test/js/node/test/parallel/test-readline-position.js -test/js/node/test/parallel/test-readline-promises-csi.mjs -test/js/node/test/parallel/test-readline-promises-tab-complete.js -test/js/node/test/parallel/test-readline-reopen.js -test/js/node/test/parallel/test-readline-set-raw-mode.js -test/js/node/test/parallel/test-readline-tab-complete.js -test/js/node/test/parallel/test-readline-undefined-columns.js -test/js/node/test/parallel/test-readline.js test/js/node/test/parallel/test-ref-unref-return.js test/js/node/test/parallel/test-regression-object-prototype.js test/js/node/test/parallel/test-repl-clear-immediate-crash.js From 4341c383392d4450030a321152f47273806701ee Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 15:15:44 -0700 Subject: [PATCH 28/60] node:path --- test/no-validate-leaksan.txt | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index a01dbcf353e..ebc0076c37b 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1246,22 +1246,6 @@ test/js/node/test/parallel/test-os.js test/js/node/test/parallel/test-outgoing-message-destroy.js test/js/node/test/parallel/test-outgoing-message-pipe.js test/js/node/test/parallel/test-parse-args.mjs -test/js/node/test/parallel/test-path-basename.js -test/js/node/test/parallel/test-path-dirname.js -test/js/node/test/parallel/test-path-extname.js -test/js/node/test/parallel/test-path-glob.js -test/js/node/test/parallel/test-path-isabsolute.js -test/js/node/test/parallel/test-path-join.js -test/js/node/test/parallel/test-path-makelong.js -test/js/node/test/parallel/test-path-normalize.js -test/js/node/test/parallel/test-path-parse-format.js -test/js/node/test/parallel/test-path-posix-exists.js -test/js/node/test/parallel/test-path-posix-relative-on-windows.js -test/js/node/test/parallel/test-path-relative.js -test/js/node/test/parallel/test-path-resolve.js -test/js/node/test/parallel/test-path-win32-exists.js -test/js/node/test/parallel/test-path-zero-length-strings.js -test/js/node/test/parallel/test-path.js test/js/node/test/parallel/test-perf-gc-crash.js test/js/node/test/parallel/test-performance-measure.js test/js/node/test/parallel/test-performanceobserver-gc.js From 5366a896cf71eea992d5c014eab35e29116cdb9f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 15:19:29 -0700 Subject: [PATCH 29/60] node:module --- test/no-validate-leaksan.txt | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index ebc0076c37b..568918193fe 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1195,32 +1195,6 @@ test/js/node/test/parallel/test-microtask-queue-run-immediate.js test/js/node/test/parallel/test-microtask-queue-run.js test/js/node/test/parallel/test-mime-api.js test/js/node/test/parallel/test-mime-whatwg.js -test/js/node/test/parallel/test-module-builtin.js -test/js/node/test/parallel/test-module-cache.js -test/js/node/test/parallel/test-module-children.js -test/js/node/test/parallel/test-module-circular-dependency-warning.js -test/js/node/test/parallel/test-module-circular-symlinks.js -test/js/node/test/parallel/test-module-create-require.js -test/js/node/test/parallel/test-module-globalpaths-nodepath.js -test/js/node/test/parallel/test-module-isBuiltin.js -test/js/node/test/parallel/test-module-loading-deprecated.js -test/js/node/test/parallel/test-module-loading-error.js -test/js/node/test/parallel/test-module-main-extension-lookup.js -test/js/node/test/parallel/test-module-main-fail.js -test/js/node/test/parallel/test-module-main-preserve-symlinks-fail.js -test/js/node/test/parallel/test-module-multi-extensions.js -test/js/node/test/parallel/test-module-nodemodulepaths.js -test/js/node/test/parallel/test-module-parent-deprecation.js -test/js/node/test/parallel/test-module-parent-setter-deprecation.js -test/js/node/test/parallel/test-module-prototype-mutation.js -test/js/node/test/parallel/test-module-readonly.js -test/js/node/test/parallel/test-module-relative-lookup.js -test/js/node/test/parallel/test-module-run-main-monkey-patch.js -test/js/node/test/parallel/test-module-stat.js -test/js/node/test/parallel/test-module-symlinked-peer-modules.js -test/js/node/test/parallel/test-module-version.js -test/js/node/test/parallel/test-module-wrap.js -test/js/node/test/parallel/test-module-wrapper.js test/js/node/test/parallel/test-net-connect-custom-lookup-non-string-address.mjs test/js/node/test/parallel/test-net-listen-handle-in-cluster-1.js test/js/node/test/parallel/test-net-server-async-dispose.mjs From 2f1ce85502aedd930723e55cc6eb466ca9643658 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 15:43:56 -0700 Subject: [PATCH 30/60] node:http --- src/bun.js/api/server.zig | 23 ++-- test/leaksan.supp | 1 + test/no-validate-leaksan.txt | 227 ----------------------------------- 3 files changed, 10 insertions(+), 241 deletions(-) diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index f26f4552581..a37d7a20db2 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -546,8 +546,6 @@ pub fn NewServer(protocol_enum: enum { http, https }, development_kind: enum { d allocator: std.mem.Allocator, poll_ref: Async.KeepAlive = .{}, - cached_hostname: bun.String = bun.String.empty, - flags: packed struct(u4) { deinit_scheduled: bool = false, terminated: bool = false, @@ -1369,38 +1367,35 @@ pub fn NewServer(protocol_enum: enum { http, https }, development_kind: enum { d return url.toJSDOMURL(globalThis); } - pub fn getHostname(this: *ThisServer, globalThis: *JSGlobalObject) jsc.JSValue { + pub fn getHostname(this: *ThisServer, globalThis: *JSGlobalObject) !jsc.JSValue { switch (this.config.address) { .unix => return .js_undefined, - else => {}, + .tcp => {}, } - - if (this.cached_hostname.isEmpty()) { + { if (this.listener) |listener| { var buf: [1024]u8 = [_]u8{0} ** 1024; if (listener.socket().remoteAddress(buf[0..1024])) |addr| { if (addr.len > 0) { - this.cached_hostname = bun.String.cloneUTF8(addr); + return bun.String.createUTF8ForJS(globalThis, addr); } } } - - if (this.cached_hostname.isEmpty()) { + { switch (this.config.address) { .tcp => |tcp| { if (tcp.hostname) |hostname| { - this.cached_hostname = bun.String.cloneUTF8(bun.sliceTo(hostname, 0)); + return bun.String.createUTF8ForJS(globalThis, bun.sliceTo(hostname, 0)); } else { - this.cached_hostname = bun.String.createAtomASCII("localhost"); + return bun.String.static("localhost").toJS(globalThis); } }, - else => {}, + .unix => unreachable, } } } - - return this.cached_hostname.toJS(globalThis); + @panic("unreachable"); } pub fn getProtocol(this: *ThisServer, globalThis: *JSGlobalObject) jsc.JSValue { diff --git a/test/leaksan.supp b/test/leaksan.supp index f6c4472a9be..761bf564f46 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -27,3 +27,4 @@ leak:Zig::GlobalObject::moduleLoaderResolve leak:JSModuleLoader__import leak:dyld::ThreadLocalVariables leak:JSC__JSModuleLoader__loadAndEvaluateModule +leak:uws_create_app diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 568918193fe..b26027d16ab 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -788,212 +788,6 @@ test/js/node/test/parallel/test-global-domexception.js test/js/node/test/parallel/test-global-encoder.js test/js/node/test/parallel/test-global-webcrypto.js test/js/node/test/parallel/test-handle-wrap-close-abort.js -test/js/node/test/parallel/test-http-1.0-keep-alive.js -test/js/node/test/parallel/test-http-abort-before-end.js -test/js/node/test/parallel/test-http-abort-stream-end.js -test/js/node/test/parallel/test-http-aborted.js -test/js/node/test/parallel/test-http-agent-false.js -test/js/node/test/parallel/test-http-agent-getname.js -test/js/node/test/parallel/test-http-agent-keepalive-delay.js -test/js/node/test/parallel/test-http-agent-no-protocol.js -test/js/node/test/parallel/test-http-agent-null.js -test/js/node/test/parallel/test-http-agent-remove.js -test/js/node/test/parallel/test-http-agent-uninitialized-with-handle.js -test/js/node/test/parallel/test-http-agent-uninitialized.js -test/js/node/test/parallel/test-http-allow-content-length-304.js -test/js/node/test/parallel/test-http-allow-req-after-204-res.js -test/js/node/test/parallel/test-http-autoselectfamily.js -test/js/node/test/parallel/test-http-bind-twice.js -test/js/node/test/parallel/test-http-blank-header.js -test/js/node/test/parallel/test-http-buffer-sanity.js -test/js/node/test/parallel/test-http-byteswritten.js -test/js/node/test/parallel/test-http-catch-uncaughtexception.js -test/js/node/test/parallel/test-http-chunk-problem.js -test/js/node/test/parallel/test-http-chunked-smuggling.js -test/js/node/test/parallel/test-http-chunked.js -test/js/node/test/parallel/test-http-client-abort-event.js -test/js/node/test/parallel/test-http-client-abort-response-event.js -test/js/node/test/parallel/test-http-client-abort.js -test/js/node/test/parallel/test-http-client-abort2.js -test/js/node/test/parallel/test-http-client-agent-abort-close-event.js -test/js/node/test/parallel/test-http-client-check-http-token.js -test/js/node/test/parallel/test-http-client-close-with-default-agent.js -test/js/node/test/parallel/test-http-client-defaults.js -test/js/node/test/parallel/test-http-client-encoding.js -test/js/node/test/parallel/test-http-client-get-url.js -test/js/node/test/parallel/test-http-client-headers-host-array.js -test/js/node/test/parallel/test-http-client-input-function.js -test/js/node/test/parallel/test-http-client-insecure-http-parser-error.js -test/js/node/test/parallel/test-http-client-invalid-path.js -test/js/node/test/parallel/test-http-client-keep-alive-hint.js -test/js/node/test/parallel/test-http-client-keep-alive-release-before-finish.js -test/js/node/test/parallel/test-http-client-pipe-end.js -test/js/node/test/parallel/test-http-client-race-2.js -test/js/node/test/parallel/test-http-client-race.js -test/js/node/test/parallel/test-http-client-read-in-error.js -test/js/node/test/parallel/test-http-client-reject-unexpected-agent.js -test/js/node/test/parallel/test-http-client-req-error-dont-double-fire.js -test/js/node/test/parallel/test-http-client-request-options.js -test/js/node/test/parallel/test-http-client-res-destroyed.js -test/js/node/test/parallel/test-http-client-timeout-agent.js -test/js/node/test/parallel/test-http-client-timeout-connect-listener.js -test/js/node/test/parallel/test-http-client-timeout-event.js -test/js/node/test/parallel/test-http-client-timeout-option.js -test/js/node/test/parallel/test-http-client-timeout.js -test/js/node/test/parallel/test-http-client-unescaped-path.js -test/js/node/test/parallel/test-http-client-upload-buf.js -test/js/node/test/parallel/test-http-client-upload.js -test/js/node/test/parallel/test-http-client-with-create-connection.js -test/js/node/test/parallel/test-http-common.js -test/js/node/test/parallel/test-http-conn-reset.js -test/js/node/test/parallel/test-http-content-length-mismatch.js -test/js/node/test/parallel/test-http-contentLength0.js -test/js/node/test/parallel/test-http-date-header.js -test/js/node/test/parallel/test-http-decoded-auth.js -test/js/node/test/parallel/test-http-default-encoding.js -test/js/node/test/parallel/test-http-dns-error.js -test/js/node/test/parallel/test-http-double-content-length.js -test/js/node/test/parallel/test-http-dummy-characters-smuggling.js -test/js/node/test/parallel/test-http-early-hints-invalid-argument.js -test/js/node/test/parallel/test-http-end-throw-socket-handling.js -test/js/node/test/parallel/test-http-eof-on-connect.js -test/js/node/test/parallel/test-http-exceptions.js -test/js/node/test/parallel/test-http-expect-continue.js -test/js/node/test/parallel/test-http-expect-handling.js -test/js/node/test/parallel/test-http-extra-response.js -test/js/node/test/parallel/test-http-flush-headers.js -test/js/node/test/parallel/test-http-flush-response-headers.js -test/js/node/test/parallel/test-http-full-response.js -test/js/node/test/parallel/test-http-get-pipeline-problem.js -test/js/node/test/parallel/test-http-head-request.js -test/js/node/test/parallel/test-http-head-response-has-no-body-end-implicit-headers.js -test/js/node/test/parallel/test-http-head-response-has-no-body-end.js -test/js/node/test/parallel/test-http-head-response-has-no-body.js -test/js/node/test/parallel/test-http-head-throw-on-response-body-write.js -test/js/node/test/parallel/test-http-header-obstext.js -test/js/node/test/parallel/test-http-header-overflow.js -test/js/node/test/parallel/test-http-header-owstext.js -test/js/node/test/parallel/test-http-header-read.js -test/js/node/test/parallel/test-http-header-validators.js -test/js/node/test/parallel/test-http-hex-write.js -test/js/node/test/parallel/test-http-highwatermark.js -test/js/node/test/parallel/test-http-host-headers.js -test/js/node/test/parallel/test-http-hostname-typechecking.js -test/js/node/test/parallel/test-http-import-websocket.js -test/js/node/test/parallel/test-http-incoming-message-destroy.js -test/js/node/test/parallel/test-http-invalid-path-chars.js -test/js/node/test/parallel/test-http-invalid-te.js -test/js/node/test/parallel/test-http-invalid-urls.js -test/js/node/test/parallel/test-http-invalidheaderfield.js -test/js/node/test/parallel/test-http-invalidheaderfield2.js -test/js/node/test/parallel/test-http-keep-alive-drop-requests.js -test/js/node/test/parallel/test-http-keep-alive-pipeline-max-requests.js -test/js/node/test/parallel/test-http-keep-alive-timeout-custom.js -test/js/node/test/parallel/test-http-keep-alive-timeout-race-condition.js -test/js/node/test/parallel/test-http-listening.js -test/js/node/test/parallel/test-http-malformed-request.js -test/js/node/test/parallel/test-http-many-ended-pipelines.js -test/js/node/test/parallel/test-http-max-header-size.js -test/js/node/test/parallel/test-http-methods.js -test/js/node/test/parallel/test-http-missing-header-separator-cr.js -test/js/node/test/parallel/test-http-missing-header-separator-lf.js -test/js/node/test/parallel/test-http-no-content-length.js -test/js/node/test/parallel/test-http-outgoing-buffer.js -test/js/node/test/parallel/test-http-outgoing-destroy.js -test/js/node/test/parallel/test-http-outgoing-end-multiple.js -test/js/node/test/parallel/test-http-outgoing-end-types.js -test/js/node/test/parallel/test-http-outgoing-finish-writable.js -test/js/node/test/parallel/test-http-outgoing-finish.js -test/js/node/test/parallel/test-http-outgoing-finished.js -test/js/node/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js -test/js/node/test/parallel/test-http-outgoing-internal-headernames-getter.js -test/js/node/test/parallel/test-http-outgoing-internal-headernames-setter.js -test/js/node/test/parallel/test-http-outgoing-internal-headers.js -test/js/node/test/parallel/test-http-outgoing-message-write-callback.js -test/js/node/test/parallel/test-http-outgoing-proto.js -test/js/node/test/parallel/test-http-outgoing-settimeout.js -test/js/node/test/parallel/test-http-outgoing-writableFinished.js -test/js/node/test/parallel/test-http-outgoing-write-types.js -test/js/node/test/parallel/test-http-parser-bad-ref.js -test/js/node/test/parallel/test-http-parser-lazy-loaded.js -test/js/node/test/parallel/test-http-parser.js -test/js/node/test/parallel/test-http-pause-no-dump.js -test/js/node/test/parallel/test-http-pause-resume-one-end.js -test/js/node/test/parallel/test-http-pause.js -test/js/node/test/parallel/test-http-pipe-fs.js -test/js/node/test/parallel/test-http-pipeline-requests-connection-leak.js -test/js/node/test/parallel/test-http-pipeline-socket-parser-typeerror.js -test/js/node/test/parallel/test-http-proxy.js -test/js/node/test/parallel/test-http-readable-data-event.js -test/js/node/test/parallel/test-http-request-agent.js -test/js/node/test/parallel/test-http-request-arguments.js -test/js/node/test/parallel/test-http-request-end-twice.js -test/js/node/test/parallel/test-http-request-end.js -test/js/node/test/parallel/test-http-request-invalid-method-error.js -test/js/node/test/parallel/test-http-request-large-payload.js -test/js/node/test/parallel/test-http-request-method-delete-payload.js -test/js/node/test/parallel/test-http-request-methods.js -test/js/node/test/parallel/test-http-request-smuggling-content-length.js -test/js/node/test/parallel/test-http-res-write-after-end.js -test/js/node/test/parallel/test-http-res-write-end-dont-take-array.js -test/js/node/test/parallel/test-http-response-add-header-after-sent.js -test/js/node/test/parallel/test-http-response-close.js -test/js/node/test/parallel/test-http-response-cork.js -test/js/node/test/parallel/test-http-response-multi-content-length.js -test/js/node/test/parallel/test-http-response-readable.js -test/js/node/test/parallel/test-http-response-remove-header-after-sent.js -test/js/node/test/parallel/test-http-response-setheaders.js -test/js/node/test/parallel/test-http-response-splitting.js -test/js/node/test/parallel/test-http-response-status-message.js -test/js/node/test/parallel/test-http-response-statuscode.js -test/js/node/test/parallel/test-http-response-writehead-returns-this.js -test/js/node/test/parallel/test-http-server-async-dispose.js -test/js/node/test/parallel/test-http-server-capture-rejections.js -test/js/node/test/parallel/test-http-server-close-all.js -test/js/node/test/parallel/test-http-server-close-destroy-timeout.js -test/js/node/test/parallel/test-http-server-close-idle-wait-response.js -test/js/node/test/parallel/test-http-server-connections-checking-leak.js -test/js/node/test/parallel/test-http-server-de-chunked-trailer.js -test/js/node/test/parallel/test-http-server-delete-parser.js -test/js/node/test/parallel/test-http-server-destroy-socket-on-client-error.js -test/js/node/test/parallel/test-http-server-keep-alive-defaults.js -test/js/node/test/parallel/test-http-server-keep-alive-max-requests-null.js -test/js/node/test/parallel/test-http-server-method.query.js -test/js/node/test/parallel/test-http-server-multiheaders.js -test/js/node/test/parallel/test-http-server-non-utf8-header.js -test/js/node/test/parallel/test-http-server-options-incoming-message.js -test/js/node/test/parallel/test-http-server-options-server-response.js -test/js/node/test/parallel/test-http-server-reject-chunked-with-content-length.js -test/js/node/test/parallel/test-http-server-stale-close.js -test/js/node/test/parallel/test-http-server-timeouts-validation.js -test/js/node/test/parallel/test-http-server-write-after-end.js -test/js/node/test/parallel/test-http-server-write-end-after-end.js -test/js/node/test/parallel/test-http-set-cookies.js -test/js/node/test/parallel/test-http-set-header-chain.js -test/js/node/test/parallel/test-http-set-max-idle-http-parser.js -test/js/node/test/parallel/test-http-socket-error-listeners.js -test/js/node/test/parallel/test-http-status-code.js -test/js/node/test/parallel/test-http-status-message.js -test/js/node/test/parallel/test-http-status-reason-invalid-chars.js -test/js/node/test/parallel/test-http-timeout-client-warning.js -test/js/node/test/parallel/test-http-timeout-overflow.js -test/js/node/test/parallel/test-http-timeout.js -test/js/node/test/parallel/test-http-uncaught-from-request-callback.js -test/js/node/test/parallel/test-http-upgrade-reconsume-stream.js -test/js/node/test/parallel/test-http-url.parse-auth-with-header-in-request.js -test/js/node/test/parallel/test-http-url.parse-auth.js -test/js/node/test/parallel/test-http-url.parse-basic.js -test/js/node/test/parallel/test-http-url.parse-only-support-http-https-protocol.js -test/js/node/test/parallel/test-http-url.parse-path.js -test/js/node/test/parallel/test-http-url.parse-post.js -test/js/node/test/parallel/test-http-url.parse-search.js -test/js/node/test/parallel/test-http-wget.js -test/js/node/test/parallel/test-http-write-callbacks.js -test/js/node/test/parallel/test-http-write-empty-string.js -test/js/node/test/parallel/test-http-write-head-2.js -test/js/node/test/parallel/test-http-write-head.js -test/js/node/test/parallel/test-http-zero-length-write.js -test/js/node/test/parallel/test-http-zerolengthbuffer.js test/js/node/test/parallel/test-http2-altsvc.js test/js/node/test/parallel/test-http2-cancel-while-client-reading.js test/js/node/test/parallel/test-http2-clean-output.js @@ -1148,27 +942,6 @@ test/js/node/test/parallel/test-http2-write-empty-string.js test/js/node/test/parallel/test-http2-zero-length-header.js test/js/node/test/parallel/test-http2-zero-length-write.js test/js/node/test/parallel/test-https-agent-constructor.js -test/js/node/test/parallel/test-https-agent-session-eviction.js -test/js/node/test/parallel/test-https-agent.js -test/js/node/test/parallel/test-https-byteswritten.js -test/js/node/test/parallel/test-https-client-get-url.js -test/js/node/test/parallel/test-https-client-renegotiation-limit.js -test/js/node/test/parallel/test-https-close.js -test/js/node/test/parallel/test-https-connecting-to-http.js -test/js/node/test/parallel/test-https-eof-for-eom.js -test/js/node/test/parallel/test-https-foafssl.js -test/js/node/test/parallel/test-https-localaddress-bind-error.js -test/js/node/test/parallel/test-https-options-boolean-check.js -test/js/node/test/parallel/test-https-selfsigned-no-keycertsign-no-crash.js -test/js/node/test/parallel/test-https-server-async-dispose.js -test/js/node/test/parallel/test-https-server-close-destroy-timeout.js -test/js/node/test/parallel/test-https-server-connections-checking-leak.js -test/js/node/test/parallel/test-https-server-headers-timeout.js -test/js/node/test/parallel/test-https-server-request-timeout.js -test/js/node/test/parallel/test-https-simple.js -test/js/node/test/parallel/test-https-socket-options.js -test/js/node/test/parallel/test-https-truncate.js -test/js/node/test/parallel/test-https-unix-socket-self-signed.js test/js/node/test/parallel/test-icu-env.js test/js/node/test/parallel/test-icu-punycode.js test/js/node/test/parallel/test-icu-transcode.js From e005bb9699e0f864c3a638555493a3b56d380efb Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 16:02:57 -0700 Subject: [PATCH 31/60] node:http2 --- test/leaksan.supp | 2 + test/no-validate-leaksan.txt | 154 ----------------------------------- 2 files changed, 2 insertions(+), 154 deletions(-) diff --git a/test/leaksan.supp b/test/leaksan.supp index 761bf564f46..d9db9b50bbb 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -28,3 +28,5 @@ leak:JSModuleLoader__import leak:dyld::ThreadLocalVariables leak:JSC__JSModuleLoader__loadAndEvaluateModule leak:uws_create_app +leak:lshpack_wrapper_decode +leak:lshpack_wrapper_init diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index b26027d16ab..9930d39b28e 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -788,160 +788,6 @@ test/js/node/test/parallel/test-global-domexception.js test/js/node/test/parallel/test-global-encoder.js test/js/node/test/parallel/test-global-webcrypto.js test/js/node/test/parallel/test-handle-wrap-close-abort.js -test/js/node/test/parallel/test-http2-altsvc.js -test/js/node/test/parallel/test-http2-cancel-while-client-reading.js -test/js/node/test/parallel/test-http2-clean-output.js -test/js/node/test/parallel/test-http2-client-port-80.js -test/js/node/test/parallel/test-http2-client-priority-before-connect.js -test/js/node/test/parallel/test-http2-client-request-listeners-warning.js -test/js/node/test/parallel/test-http2-client-request-options-errors.js -test/js/node/test/parallel/test-http2-client-rststream-before-connect.js -test/js/node/test/parallel/test-http2-client-setLocalWindowSize.js -test/js/node/test/parallel/test-http2-client-setNextStreamID-errors.js -test/js/node/test/parallel/test-http2-client-shutdown-before-connect.js -test/js/node/test/parallel/test-http2-client-stream-destroy-before-connect.js -test/js/node/test/parallel/test-http2-client-upload-reject.js -test/js/node/test/parallel/test-http2-client-upload.js -test/js/node/test/parallel/test-http2-client-write-before-connect.js -test/js/node/test/parallel/test-http2-client-write-empty-string.js -test/js/node/test/parallel/test-http2-close-while-writing.js -test/js/node/test/parallel/test-http2-compat-aborted.js -test/js/node/test/parallel/test-http2-compat-client-upload-reject.js -test/js/node/test/parallel/test-http2-compat-errors.js -test/js/node/test/parallel/test-http2-compat-expect-continue-check.js -test/js/node/test/parallel/test-http2-compat-expect-continue.js -test/js/node/test/parallel/test-http2-compat-expect-handling.js -test/js/node/test/parallel/test-http2-compat-method-connect.js -test/js/node/test/parallel/test-http2-compat-serverrequest-end.js -test/js/node/test/parallel/test-http2-compat-serverrequest-headers.js -test/js/node/test/parallel/test-http2-compat-serverrequest-host.js -test/js/node/test/parallel/test-http2-compat-serverrequest-pause.js -test/js/node/test/parallel/test-http2-compat-serverrequest-pipe.js -test/js/node/test/parallel/test-http2-compat-serverrequest-settimeout.js -test/js/node/test/parallel/test-http2-compat-serverrequest-trailers.js -test/js/node/test/parallel/test-http2-compat-serverrequest.js -test/js/node/test/parallel/test-http2-compat-serverresponse-close.js -test/js/node/test/parallel/test-http2-compat-serverresponse-destroy.js -test/js/node/test/parallel/test-http2-compat-serverresponse-end-after-statuses-without-body.js -test/js/node/test/parallel/test-http2-compat-serverresponse-end.js -test/js/node/test/parallel/test-http2-compat-serverresponse-finished.js -test/js/node/test/parallel/test-http2-compat-serverresponse-flushheaders.js -test/js/node/test/parallel/test-http2-compat-serverresponse-headers-after-destroy.js -test/js/node/test/parallel/test-http2-compat-serverresponse-headers-send-date.js -test/js/node/test/parallel/test-http2-compat-serverresponse-headers.js -test/js/node/test/parallel/test-http2-compat-serverresponse-settimeout.js -test/js/node/test/parallel/test-http2-compat-serverresponse-statuscode.js -test/js/node/test/parallel/test-http2-compat-serverresponse-statusmessage-property-set.js -test/js/node/test/parallel/test-http2-compat-serverresponse-statusmessage-property.js -test/js/node/test/parallel/test-http2-compat-serverresponse-statusmessage.js -test/js/node/test/parallel/test-http2-compat-serverresponse-trailers.js -test/js/node/test/parallel/test-http2-compat-serverresponse-write.js -test/js/node/test/parallel/test-http2-compat-serverresponse-writehead-array.js -test/js/node/test/parallel/test-http2-compat-serverresponse-writehead.js -test/js/node/test/parallel/test-http2-compat-serverresponse.js -test/js/node/test/parallel/test-http2-compat-socket-destroy-delayed.js -test/js/node/test/parallel/test-http2-compat-write-early-hints-invalid-argument-type.js -test/js/node/test/parallel/test-http2-compat-write-early-hints-invalid-argument-value.js -test/js/node/test/parallel/test-http2-compat-write-early-hints.js -test/js/node/test/parallel/test-http2-compat-write-head-after-close.js -test/js/node/test/parallel/test-http2-compat-write-head-destroyed.js -test/js/node/test/parallel/test-http2-connect-options.js -test/js/node/test/parallel/test-http2-connect-tls-with-delay.js -test/js/node/test/parallel/test-http2-connect.js -test/js/node/test/parallel/test-http2-cookies.js -test/js/node/test/parallel/test-http2-create-client-connect.js -test/js/node/test/parallel/test-http2-create-client-session.js -test/js/node/test/parallel/test-http2-createsecureserver-options.js -test/js/node/test/parallel/test-http2-createserver-options.js -test/js/node/test/parallel/test-http2-createwritereq.js -test/js/node/test/parallel/test-http2-date-header.js -test/js/node/test/parallel/test-http2-destroy-after-write.js -test/js/node/test/parallel/test-http2-dont-override.js -test/js/node/test/parallel/test-http2-endafterheaders.js -test/js/node/test/parallel/test-http2-error-order.js -test/js/node/test/parallel/test-http2-forget-closed-streams.js -test/js/node/test/parallel/test-http2-goaway-opaquedata.js -test/js/node/test/parallel/test-http2-graceful-close.js -test/js/node/test/parallel/test-http2-head-request.js -test/js/node/test/parallel/test-http2-info-headers.js -test/js/node/test/parallel/test-http2-invalidargtypes-errors.js -test/js/node/test/parallel/test-http2-invalidheaderfield.js -test/js/node/test/parallel/test-http2-invalidheaderfields-client.js -test/js/node/test/parallel/test-http2-large-write-close.js -test/js/node/test/parallel/test-http2-large-write-destroy.js -test/js/node/test/parallel/test-http2-large-write-multiple-requests.js -test/js/node/test/parallel/test-http2-large-writes-session-memory-leak.js -test/js/node/test/parallel/test-http2-malformed-altsvc.js -test/js/node/test/parallel/test-http2-many-writes-and-destroy.js -test/js/node/test/parallel/test-http2-max-session-memory-leak.js -test/js/node/test/parallel/test-http2-methods.js -test/js/node/test/parallel/test-http2-misbehaving-flow-control-paused.js -test/js/node/test/parallel/test-http2-misbehaving-flow-control.js -test/js/node/test/parallel/test-http2-misused-pseudoheaders.js -test/js/node/test/parallel/test-http2-multiheaders-raw.js -test/js/node/test/parallel/test-http2-multiheaders.js -test/js/node/test/parallel/test-http2-multiplex.js -test/js/node/test/parallel/test-http2-multistream-destroy-on-read-tls.js -test/js/node/test/parallel/test-http2-no-more-streams.js -test/js/node/test/parallel/test-http2-no-wanttrailers-listener.js -test/js/node/test/parallel/test-http2-options-max-headers-block-length.js -test/js/node/test/parallel/test-http2-options-server-request.js -test/js/node/test/parallel/test-http2-options-server-response.js -test/js/node/test/parallel/test-http2-origin.js -test/js/node/test/parallel/test-http2-pipe-named-pipe.js -test/js/node/test/parallel/test-http2-pipe.js -test/js/node/test/parallel/test-http2-premature-close.js -test/js/node/test/parallel/test-http2-priority-cycle-.js -test/js/node/test/parallel/test-http2-removed-header-stays-removed.js -test/js/node/test/parallel/test-http2-request-remove-connect-listener.js -test/js/node/test/parallel/test-http2-request-response-proto.js -test/js/node/test/parallel/test-http2-res-corked.js -test/js/node/test/parallel/test-http2-respond-errors.js -test/js/node/test/parallel/test-http2-respond-file-204.js -test/js/node/test/parallel/test-http2-respond-file-304.js -test/js/node/test/parallel/test-http2-respond-file-404.js -test/js/node/test/parallel/test-http2-respond-file-compat.js -test/js/node/test/parallel/test-http2-respond-file-error-dir.js -test/js/node/test/parallel/test-http2-respond-file-error-pipe-offset.js -test/js/node/test/parallel/test-http2-respond-file-errors.js -test/js/node/test/parallel/test-http2-respond-file-fd-errors.js -test/js/node/test/parallel/test-http2-respond-file-fd-invalid.js -test/js/node/test/parallel/test-http2-respond-file-fd-range.js -test/js/node/test/parallel/test-http2-respond-file-fd.js -test/js/node/test/parallel/test-http2-respond-file-filehandle.js -test/js/node/test/parallel/test-http2-respond-file-range.js -test/js/node/test/parallel/test-http2-respond-file.js -test/js/node/test/parallel/test-http2-respond-no-data.js -test/js/node/test/parallel/test-http2-respond-with-file-connection-abort.js -test/js/node/test/parallel/test-http2-sent-headers.js -test/js/node/test/parallel/test-http2-serve-file.js -test/js/node/test/parallel/test-http2-server-async-dispose.js -test/js/node/test/parallel/test-http2-server-close-callback.js -test/js/node/test/parallel/test-http2-server-close-idle-connection.js -test/js/node/test/parallel/test-http2-server-errors.js -test/js/node/test/parallel/test-http2-server-rst-before-respond.js -test/js/node/test/parallel/test-http2-server-session-destroy.js -test/js/node/test/parallel/test-http2-server-set-header.js -test/js/node/test/parallel/test-http2-server-setLocalWindowSize.js -test/js/node/test/parallel/test-http2-server-shutdown-options-errors.js -test/js/node/test/parallel/test-http2-session-gc-while-write-scheduled.js -test/js/node/test/parallel/test-http2-session-stream-state.js -test/js/node/test/parallel/test-http2-session-timeout.js -test/js/node/test/parallel/test-http2-single-headers.js -test/js/node/test/parallel/test-http2-socket-proxy-handler-for-has.js -test/js/node/test/parallel/test-http2-status-code.js -test/js/node/test/parallel/test-http2-stream-destroy-event-order.js -test/js/node/test/parallel/test-http2-timeouts.js -test/js/node/test/parallel/test-http2-tls-disconnect.js -test/js/node/test/parallel/test-http2-too-many-headers.js -test/js/node/test/parallel/test-http2-trailers-after-session-close.js -test/js/node/test/parallel/test-http2-trailers.js -test/js/node/test/parallel/test-http2-unbound-socket-proxy.js -test/js/node/test/parallel/test-http2-write-callbacks.js -test/js/node/test/parallel/test-http2-write-empty-string.js -test/js/node/test/parallel/test-http2-zero-length-header.js -test/js/node/test/parallel/test-http2-zero-length-write.js -test/js/node/test/parallel/test-https-agent-constructor.js test/js/node/test/parallel/test-icu-env.js test/js/node/test/parallel/test-icu-punycode.js test/js/node/test/parallel/test-icu-transcode.js From 62ce40a96dcedde2e7d66accbf7dc87a0bca2388 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 16:04:55 -0700 Subject: [PATCH 32/60] sequential --- test/no-validate-leaksan.txt | 41 ------------------------------------ 1 file changed, 41 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 9930d39b28e..e6f7bccac2c 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1068,47 +1068,6 @@ test/js/node/test/parallel/test-worker-unref-from-message-during-exit.js test/js/node/test/parallel/test-worker-workerdata-sharedarraybuffer.js test/js/node/test/parallel/test-worker.js test/js/node/test/parallel/test-worker.mjs -test/js/node/test/sequential/test-child-process-emfile.js -test/js/node/test/sequential/test-child-process-execsync.js -test/js/node/test/sequential/test-child-process-exit.js -test/js/node/test/sequential/test-crypto-timing-safe-equal.js -test/js/node/test/sequential/test-debug-prompt.js -test/js/node/test/sequential/test-dgram-implicit-bind-failure.js -test/js/node/test/sequential/test-dgram-pingpong.js -test/js/node/test/sequential/test-fs-opendir-recursive.js -test/js/node/test/sequential/test-fs-readdir-recursive.js -test/js/node/test/sequential/test-fs-stat-sync-overflow.js -test/js/node/test/sequential/test-http-econnrefused.js -test/js/node/test/sequential/test-http-keep-alive-large-write.js -test/js/node/test/sequential/test-http-server-keep-alive-timeout-slow-server.js -test/js/node/test/sequential/test-http2-large-file.js -test/js/node/test/sequential/test-init.js -test/js/node/test/sequential/test-net-GH-5504.js -test/js/node/test/sequential/test-net-better-error-messages-port.js -test/js/node/test/sequential/test-net-connect-econnrefused.js -test/js/node/test/sequential/test-net-connect-handle-econnrefused.js -test/js/node/test/sequential/test-net-reconnect-error.js -test/js/node/test/sequential/test-net-response-size.js -test/js/node/test/sequential/test-net-server-address.js -test/js/node/test/sequential/test-net-server-bind.js -test/js/node/test/sequential/test-require-cache-without-stat.js -test/js/node/test/sequential/test-single-executable-application-assets-raw.js -test/js/node/test/sequential/test-single-executable-application-assets.js -test/js/node/test/sequential/test-single-executable-application-disable-experimental-sea-warning.js -test/js/node/test/sequential/test-single-executable-application-empty.js -test/js/node/test/sequential/test-single-executable-application-snapshot-and-code-cache.js -test/js/node/test/sequential/test-single-executable-application-snapshot-worker.js -test/js/node/test/sequential/test-single-executable-application-snapshot.js -test/js/node/test/sequential/test-single-executable-application-use-code-cache.js -test/js/node/test/sequential/test-single-executable-application.js -test/js/node/test/sequential/test-stream2-fs.js -test/js/node/test/sequential/test-timers-block-eventloop.js -test/js/node/test/sequential/test-timers-set-interval-excludes-callback-duration.js -test/js/node/test/sequential/test-tls-connect.js -test/js/node/test/sequential/test-tls-lookup.js -test/js/node/test/sequential/test-tls-psk-client.js -test/js/node/test/sequential/test-tls-securepair-client.js -test/js/node/test/sequential/test-vm-timeout-rethrow.js test/js/node/test_runner/node-test.test.ts test/js/node/timers.promises/timers.promises.test.ts test/js/node/timers/node-timers.test.ts From fade5b60bfee31e5fbc57860531811c155859f59 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 16:56:02 -0700 Subject: [PATCH 33/60] node:assert --- test/no-validate-leaksan.txt | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index e6f7bccac2c..799086511ec 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -570,21 +570,6 @@ test/js/node/string_decoder/string-decoder.test.js test/js/node/stubs.test.js test/js/node/test/parallel/test-abortsignal-any.mjs test/js/node/test/parallel/test-arm-math-illegal-instruction.js -test/js/node/test/parallel/test-assert-async.js -test/js/node/test/parallel/test-assert-builtins-not-read-from-filesystem.js -test/js/node/test/parallel/test-assert-calltracker-calls.js -test/js/node/test/parallel/test-assert-calltracker-getCalls.js -test/js/node/test/parallel/test-assert-calltracker-report.js -test/js/node/test/parallel/test-assert-calltracker-verify.js -test/js/node/test/parallel/test-assert-checktag.js -test/js/node/test/parallel/test-assert-deep-with-error.js -test/js/node/test/parallel/test-assert-esm-cjs-message-verify.js -test/js/node/test/parallel/test-assert-fail-deprecation.js -test/js/node/test/parallel/test-assert-fail.js -test/js/node/test/parallel/test-assert-if-error.js -test/js/node/test/parallel/test-assert-strict-exists.js -test/js/node/test/parallel/test-assert-typedarray-deepequal.js -test/js/node/test/parallel/test-assert.js test/js/node/test/parallel/test-async-hooks-asyncresource-constructor.js test/js/node/test/parallel/test-async-hooks-constructor.js test/js/node/test/parallel/test-async-hooks-recursive-stack-runInAsyncScope.js From 25d90a7349d82314be98e85e5ba41775102e1a4f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 17:15:52 -0700 Subject: [PATCH 34/60] node:cluster --- test/leaksan.supp | 1 + test/no-validate-leaksan.txt | 54 ------------------------------------ 2 files changed, 1 insertion(+), 54 deletions(-) diff --git a/test/leaksan.supp b/test/leaksan.supp index d9db9b50bbb..8b3d07858b2 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -30,3 +30,4 @@ leak:JSC__JSModuleLoader__loadAndEvaluateModule leak:uws_create_app leak:lshpack_wrapper_decode leak:lshpack_wrapper_init +leak:bun.js.ipc.onData2 diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 799086511ec..543b446efb4 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -607,60 +607,6 @@ test/js/node/test/parallel/test-child-process-stdout-flush.js test/js/node/test/parallel/test-cli-eval-event.js test/js/node/test/parallel/test-cli-options-precedence.js test/js/node/test/parallel/test-client-request-destroy.js -test/js/node/test/parallel/test-cluster-advanced-serialization.js -test/js/node/test/parallel/test-cluster-bind-privileged-port.js -test/js/node/test/parallel/test-cluster-call-and-destroy.js -test/js/node/test/parallel/test-cluster-child-index-dgram.js -test/js/node/test/parallel/test-cluster-child-index-net.js -test/js/node/test/parallel/test-cluster-concurrent-disconnect.js -test/js/node/test/parallel/test-cluster-cwd.js -test/js/node/test/parallel/test-cluster-dgram-ipv6only.js -test/js/node/test/parallel/test-cluster-dgram-reuse.js -test/js/node/test/parallel/test-cluster-dgram-reuseport.js -test/js/node/test/parallel/test-cluster-disconnect-before-exit.js -test/js/node/test/parallel/test-cluster-disconnect-exitedAfterDisconnect-race.js -test/js/node/test/parallel/test-cluster-disconnect-idle-worker.js -test/js/node/test/parallel/test-cluster-disconnect-leak.js -test/js/node/test/parallel/test-cluster-disconnect-with-no-workers.js -test/js/node/test/parallel/test-cluster-eaddrinuse.js -test/js/node/test/parallel/test-cluster-fork-env.js -test/js/node/test/parallel/test-cluster-fork-windowsHide.js -test/js/node/test/parallel/test-cluster-http-pipe.js -test/js/node/test/parallel/test-cluster-invalid-message.js -test/js/node/test/parallel/test-cluster-ipc-throw.js -test/js/node/test/parallel/test-cluster-kill-disconnect.js -test/js/node/test/parallel/test-cluster-kill-infinite-loop.js -test/js/node/test/parallel/test-cluster-listening-port.js -test/js/node/test/parallel/test-cluster-message.js -test/js/node/test/parallel/test-cluster-net-listen.js -test/js/node/test/parallel/test-cluster-primary-error.js -test/js/node/test/parallel/test-cluster-primary-kill.js -test/js/node/test/parallel/test-cluster-process-disconnect.js -test/js/node/test/parallel/test-cluster-rr-domain-listen.js -test/js/node/test/parallel/test-cluster-rr-handle-keep-loop-alive.js -test/js/node/test/parallel/test-cluster-rr-ref.js -test/js/node/test/parallel/test-cluster-send-deadlock.js -test/js/node/test/parallel/test-cluster-setup-primary-argv.js -test/js/node/test/parallel/test-cluster-setup-primary-cumulative.js -test/js/node/test/parallel/test-cluster-setup-primary-emit.js -test/js/node/test/parallel/test-cluster-setup-primary-multiple.js -test/js/node/test/parallel/test-cluster-setup-primary.js -test/js/node/test/parallel/test-cluster-shared-handle-bind-privileged-port.js -test/js/node/test/parallel/test-cluster-uncaught-exception.js -test/js/node/test/parallel/test-cluster-worker-constructor.js -test/js/node/test/parallel/test-cluster-worker-death.js -test/js/node/test/parallel/test-cluster-worker-destroy.js -test/js/node/test/parallel/test-cluster-worker-disconnect-on-error.js -test/js/node/test/parallel/test-cluster-worker-disconnect.js -test/js/node/test/parallel/test-cluster-worker-events.js -test/js/node/test/parallel/test-cluster-worker-exit.js -test/js/node/test/parallel/test-cluster-worker-forced-exit.js -test/js/node/test/parallel/test-cluster-worker-init.js -test/js/node/test/parallel/test-cluster-worker-isconnected.js -test/js/node/test/parallel/test-cluster-worker-isdead.js -test/js/node/test/parallel/test-cluster-worker-kill.js -test/js/node/test/parallel/test-cluster-worker-no-exit.js -test/js/node/test/parallel/test-cluster-worker-wait-server-close.js test/js/node/test/parallel/test-common-countdown.js test/js/node/test/parallel/test-common-expect-warning.js test/js/node/test/parallel/test-common-gc.js From 2c81e85e0675a83a1c3296da1cd53a2aeee4cfbe Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 17:18:05 -0700 Subject: [PATCH 35/60] tidy --- scripts/runner.node.mjs | 6 ++++-- src/bun.js/api/bun/socket/tls_socket_functions.zig | 2 +- src/bun.js/api/server.zig | 1 - src/bun.js/bindings/ZigString.zig | 12 +++++------- src/http/HTTPThread.zig | 2 -- src/http/websocket_client.zig | 2 +- 6 files changed, 11 insertions(+), 14 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index eb4efa19cf6..bb5210840b7 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -589,7 +589,8 @@ async function runTests() { if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; - env["LSAN_OPTIONS"] = "malloc_context_size=100:print_suppressions=0:suppressions=test/leaksan.supp"; + // prettier-ignore + env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } return runTest(title, async () => { const { ok, error, stdout, crashes } = await spawnBun(execPath, { @@ -1318,7 +1319,8 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; env["ASAN_OPTIONS=detect_leaks"] = "1"; - env["LSAN_OPTIONS"] = "malloc_context_size=100:print_suppressions=0:suppressions=test/leaksan.supp"; + // prettier-ignore + env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } const { ok, error, stdout, crashes } = await spawnBun(execPath, { diff --git a/src/bun.js/api/bun/socket/tls_socket_functions.zig b/src/bun.js/api/bun/socket/tls_socket_functions.zig index b1ea070bdc1..94e4f9d906e 100644 --- a/src/bun.js/api/bun/socket/tls_socket_functions.zig +++ b/src/bun.js/api/bun/socket/tls_socket_functions.zig @@ -623,7 +623,7 @@ noinline fn getSSLException(globalThis: *jsc.JSGlobalObject, defaultMessage: []c const message = output_buf[0..written]; zig_str = ZigString.init(bun.handleOom(std.fmt.allocPrint(bun.default_allocator, "OpenSSL {s}", .{message}))); var encoded_str = zig_str.withEncoding(); - encoded_str.mark(); + encoded_str.markGlobal(); // We shouldn't *need* to do this but it's not entirely clear. BoringSSL.ERR_clear_error(); diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index a37d7a20db2..8d94782e8fa 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -1590,7 +1590,6 @@ pub fn NewServer(protocol_enum: enum { http, https }, development_kind: enum { d // However, when the JS VM terminates, it hypothetically might not call stopListening this.notifyInspectorServerStopped(); - this.cached_hostname.deref(); this.all_closed_promise.deinit(); for (this.user_routes.items) |*user_route| { user_route.deinit(); diff --git a/src/bun.js/bindings/ZigString.zig b/src/bun.js/bindings/ZigString.zig index 08af14b14a7..311173f9b3e 100644 --- a/src/bun.js/bindings/ZigString.zig +++ b/src/bun.js/bindings/ZigString.zig @@ -38,12 +38,12 @@ pub const ZigString = extern struct { pub fn dupeForJS(utf8: []const u8, allocator: std.mem.Allocator) !ZigString { if (try strings.toUTF16Alloc(allocator, utf8, false, false)) |utf16| { var out = ZigString.initUTF16(utf16); - out.mark(); + out.markGlobal(); out.markUTF16(); return out; } else { var out = ZigString.init(try allocator.dupe(u8, utf8)); - out.mark(); + out.markGlobal(); return out; } } @@ -174,7 +174,7 @@ pub const ZigString = extern struct { } if (this.isGloballyAllocated()) { - out.mark(); + out.markGlobal(); } return out; @@ -513,7 +513,7 @@ pub const ZigString = extern struct { var str = init(@as([*]const u8, @alignCast(@ptrCast(slice_.ptr)))[0..slice_.len]); str.markUTF16(); if (global) { - str.mark(); + str.markGlobal(); } return str; } @@ -522,7 +522,7 @@ pub const ZigString = extern struct { pub fn from16(slice_: [*]const u16, len: usize) ZigString { var str = init(@as([*]const u8, @ptrCast(slice_))[0..len]); str.markUTF16(); - str.mark(); + str.markGlobal(); str.assertGlobal(); return str; } @@ -577,8 +577,6 @@ pub const ZigString = extern struct { bun.default_allocator.free(this.slice()); } - pub const mark = markGlobal; - pub inline fn markGlobal(this: *ZigString) void { this._unsafe_ptr_do_not_use = @as([*]const u8, @ptrFromInt(@intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 62))); } diff --git a/src/http/HTTPThread.zig b/src/http/HTTPThread.zig index 78ea20fce83..d6946798e8d 100644 --- a/src/http/HTTPThread.zig +++ b/src/http/HTTPThread.zig @@ -209,9 +209,7 @@ pub fn onStart(opts: InitOpts) void { bun.http.http_thread.loop = loop; bun.http.http_thread.http_context.init(); - defer bun.http.http_thread.http_context.deinit(); bun.http.http_thread.https_context.initWithThreadOpts(&opts) catch |err| opts.onInitError(err, opts); - defer bun.http.http_thread.https_context.deinit(); bun.http.http_thread.has_awoken.store(true, .monotonic); bun.http.http_thread.processEvents(); } diff --git a/src/http/websocket_client.zig b/src/http/websocket_client.zig index ce5321a24a1..8db05a0b6c5 100644 --- a/src/http/websocket_client.zig +++ b/src/http/websocket_client.zig @@ -260,7 +260,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { var outstring = jsc.ZigString.Empty; if (utf16_bytes_) |utf16| { outstring = jsc.ZigString.from16Slice(utf16); - outstring.mark(); + outstring.markGlobal(); jsc.markBinding(@src()); out.didReceiveText(false, &outstring); } else { From 8bce7147352c40d5eb0c40224f4d91d783f9221b Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 17:19:20 -0700 Subject: [PATCH 36/60] parallel --- test/no-validate-leaksan.txt | 490 +++++------------------------------ 1 file changed, 59 insertions(+), 431 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 543b446efb4..f6c35d0f18a 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -1,4 +1,63 @@ # List of tests for which we do NOT enable LeakSanitizer when running in ASAN CI + +test/js/node/test/parallel/test-worker-abort-on-uncaught-exception.js +test/js/node/test/parallel/test-worker-arraybuffer-zerofill.js +test/js/node/test/parallel/test-worker-cjs-workerdata.js +test/js/node/test/parallel/test-worker-cleanexit-with-js.js +test/js/node/test/parallel/test-worker-cleanexit-with-moduleload.js +test/js/node/test/parallel/test-worker-console-listeners.js +test/js/node/test/parallel/test-worker-dns-terminate-during-query.js +test/js/node/test/parallel/test-worker-environmentdata.js +test/js/node/test/parallel/test-worker-esm-exit.js +test/js/node/test/parallel/test-worker-esm-missing-main.js +test/js/node/test/parallel/test-worker-esmodule.js +test/js/node/test/parallel/test-worker-event.js +test/js/node/test/parallel/test-worker-exit-event-error.js +test/js/node/test/parallel/test-worker-exit-from-uncaught-exception.js +test/js/node/test/parallel/test-worker-exit-heapsnapshot.js +test/js/node/test/parallel/test-worker-fs-stat-watcher.js +test/js/node/test/parallel/test-worker-heap-snapshot.js +test/js/node/test/parallel/test-worker-http2-generic-streams-terminate.js +test/js/node/test/parallel/test-worker-invalid-workerdata.js +test/js/node/test/parallel/test-worker-load-file-with-extension-other-than-js.js +test/js/node/test/parallel/test-worker-memory.js +test/js/node/test/parallel/test-worker-message-channel-sharedarraybuffer.js +test/js/node/test/parallel/test-worker-message-event.js +test/js/node/test/parallel/test-worker-message-port-constructor.js +test/js/node/test/parallel/test-worker-message-port-infinite-message-loop.js +test/js/node/test/parallel/test-worker-message-port-receive-message.js +test/js/node/test/parallel/test-worker-message-port-terminate-transfer-list.js +test/js/node/test/parallel/test-worker-message-port-transfer-duplicate.js +test/js/node/test/parallel/test-worker-message-port-transfer-terminate.js +test/js/node/test/parallel/test-worker-message-port-wasm-module.js +test/js/node/test/parallel/test-worker-message-port-wasm-threads.js +test/js/node/test/parallel/test-worker-mjs-workerdata.js +test/js/node/test/parallel/test-worker-nested-on-process-exit.js +test/js/node/test/parallel/test-worker-nested-uncaught.js +test/js/node/test/parallel/test-worker-no-sab.js +test/js/node/test/parallel/test-worker-non-fatal-uncaught-exception.js +test/js/node/test/parallel/test-worker-on-process-exit.js +test/js/node/test/parallel/test-worker-onmessage-not-a-function.js +test/js/node/test/parallel/test-worker-onmessage.js +test/js/node/test/parallel/test-worker-parent-port-ref.js +test/js/node/test/parallel/test-worker-process-argv.js +test/js/node/test/parallel/test-worker-ref-onexit.js +test/js/node/test/parallel/test-worker-ref.js +test/js/node/test/parallel/test-worker-relative-path-double-dot.js +test/js/node/test/parallel/test-worker-relative-path.js +test/js/node/test/parallel/test-worker-safe-getters.js +test/js/node/test/parallel/test-worker-sharedarraybuffer-from-worker-thread.js +test/js/node/test/parallel/test-worker-terminate-http2-respond-with-file.js +test/js/node/test/parallel/test-worker-terminate-nested.js +test/js/node/test/parallel/test-worker-terminate-null-handler.js +test/js/node/test/parallel/test-worker-terminate-timers.js +test/js/node/test/parallel/test-worker-type-check.js +test/js/node/test/parallel/test-worker-unref-from-message-during-exit.js +test/js/node/test/parallel/test-worker-workerdata-sharedarraybuffer.js +test/js/node/test/parallel/test-worker.js +test/js/node/test/parallel/test-worker.mjs + + test/bake/deinitialization.test.ts test/bake/dev-and-prod.test.ts test/bake/dev/bundle.test.ts @@ -568,437 +627,6 @@ test/js/node/stream/node-stream.test.js test/js/node/string-module.test.js test/js/node/string_decoder/string-decoder.test.js test/js/node/stubs.test.js -test/js/node/test/parallel/test-abortsignal-any.mjs -test/js/node/test/parallel/test-arm-math-illegal-instruction.js -test/js/node/test/parallel/test-async-hooks-asyncresource-constructor.js -test/js/node/test/parallel/test-async-hooks-constructor.js -test/js/node/test/parallel/test-async-hooks-recursive-stack-runInAsyncScope.js -test/js/node/test/parallel/test-async-hooks-run-in-async-scope-caught-exception.js -test/js/node/test/parallel/test-async-hooks-run-in-async-scope-this-arg.js -test/js/node/test/parallel/test-async-hooks-vm-gc.js -test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-1.js -test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-2.js -test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-3.js -test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-4.js -test/js/node/test/parallel/test-async-local-storage-bind.js -test/js/node/test/parallel/test-async-local-storage-contexts.js -test/js/node/test/parallel/test-async-local-storage-deep-stack.js -test/js/node/test/parallel/test-async-local-storage-enter-with.js -test/js/node/test/parallel/test-async-local-storage-exit-does-not-leak.js -test/js/node/test/parallel/test-async-local-storage-http-multiclients.js -test/js/node/test/parallel/test-async-local-storage-snapshot.js -test/js/node/test/parallel/test-async-wrap-constructor.js -test/js/node/test/parallel/test-atomics-wake.js -test/js/node/test/parallel/test-bad-unicode.js -test/js/node/test/parallel/test-beforeexit-event-exit.js -test/js/node/test/parallel/test-binding-constants.js -test/js/node/test/parallel/test-blob-createobjecturl.js -test/js/node/test/parallel/test-blocklist-clone.js -test/js/node/test/parallel/test-blocklist.js -test/js/node/test/parallel/test-broadcastchannel-custom-inspect.js -test/js/node/test/parallel/test-btoa-atob.js -test/js/node/test/parallel/test-buffer-resizable.js -test/js/node/test/parallel/test-c-ares.js -test/js/node/test/parallel/test-child-process-fork-url.mjs -test/js/node/test/parallel/test-child-process-ipc.js -test/js/node/test/parallel/test-child-process-silent.js -test/js/node/test/parallel/test-child-process-stdout-flush-exit.js -test/js/node/test/parallel/test-child-process-stdout-flush.js -test/js/node/test/parallel/test-cli-eval-event.js -test/js/node/test/parallel/test-cli-options-precedence.js -test/js/node/test/parallel/test-client-request-destroy.js -test/js/node/test/parallel/test-common-countdown.js -test/js/node/test/parallel/test-common-expect-warning.js -test/js/node/test/parallel/test-common-gc.js -test/js/node/test/parallel/test-common-must-not-call.js -test/js/node/test/parallel/test-config-json-schema.js -test/js/node/test/parallel/test-coverage-with-inspector-disabled.js -test/js/node/test/parallel/test-crypto-op-during-process-exit.js -test/js/node/test/parallel/test-crypto-prime.js -test/js/node/test/parallel/test-crypto-x509.js -test/js/node/test/parallel/test-datetime-change-notify.js -test/js/node/test/parallel/test-debug-process.js -test/js/node/test/parallel/test-debugger-backtrace.js -test/js/node/test/parallel/test-debugger-exec.js -test/js/node/test/parallel/test-debugger-invalid-json.mjs -test/js/node/test/parallel/test-debugger-low-level.js -test/js/node/test/parallel/test-debugger-preserve-breaks.js -test/js/node/test/parallel/test-debugger-repeat-last.js -test/js/node/test/parallel/test-debugger-restart-message.js -test/js/node/test/parallel/test-delayed-require.js -test/js/node/test/parallel/test-destroy-socket-in-lookup.js -test/js/node/test/parallel/test-dgram-async-dispose.mjs -test/js/node/test/parallel/test-dgram-unref.js -test/js/node/test/parallel/test-diagnostics-channel-bind-store.js -test/js/node/test/parallel/test-diagnostics-channel-has-subscribers.js -test/js/node/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js -test/js/node/test/parallel/test-diagnostics-channel-pub-sub.js -test/js/node/test/parallel/test-diagnostics-channel-safe-subscriber-errors.js -test/js/node/test/parallel/test-diagnostics-channel-symbol-named.js -test/js/node/test/parallel/test-diagnostics-channel-sync-unsubscribe.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-callback-error.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-callback-run-stores.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-callback.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-promise-error.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-promise-run-stores.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-promise.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync-error.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync-run-stores.js -test/js/node/test/parallel/test-diagnostics-channel-tracing-channel-sync.js -test/js/node/test/parallel/test-diagnostics-channel-udp.js -test/js/node/test/parallel/test-domain-crypto.js -test/js/node/test/parallel/test-domain-ee-error-listener.js -test/js/node/test/parallel/test-domain-nested-throw.js -test/js/node/test/parallel/test-domain-vm-promise-isolation.js -test/js/node/test/parallel/test-domexception-cause.js -test/js/node/test/parallel/test-dsa-fips-invalid-key.js -test/js/node/test/parallel/test-emit-after-uncaught-exception.js -test/js/node/test/parallel/test-error-prepare-stack-trace.js -test/js/node/test/parallel/test-eslint-alphabetize-errors.js -test/js/node/test/parallel/test-eslint-alphabetize-primordials.js -test/js/node/test/parallel/test-eslint-async-iife-no-unused-result.js -test/js/node/test/parallel/test-eslint-avoid-prototype-pollution.js -test/js/node/test/parallel/test-eslint-crypto-check.js -test/js/node/test/parallel/test-eslint-documented-deprecation-codes.js -test/js/node/test/parallel/test-eslint-documented-errors.js -test/js/node/test/parallel/test-eslint-duplicate-requires.js -test/js/node/test/parallel/test-eslint-eslint-check.js -test/js/node/test/parallel/test-eslint-inspector-check.js -test/js/node/test/parallel/test-eslint-lowercase-name-for-primitive.js -test/js/node/test/parallel/test-eslint-no-array-destructuring.js -test/js/node/test/parallel/test-eslint-no-unescaped-regexp-dot.js -test/js/node/test/parallel/test-eslint-non-ascii-character.js -test/js/node/test/parallel/test-eslint-prefer-assert-iferror.js -test/js/node/test/parallel/test-eslint-prefer-assert-methods.js -test/js/node/test/parallel/test-eslint-prefer-common-mustnotcall.js -test/js/node/test/parallel/test-eslint-prefer-common-mustsucceed.js -test/js/node/test/parallel/test-eslint-prefer-optional-chaining.js -test/js/node/test/parallel/test-eslint-prefer-primordials.js -test/js/node/test/parallel/test-eslint-prefer-proto.js -test/js/node/test/parallel/test-eslint-prefer-util-format-errors.js -test/js/node/test/parallel/test-eslint-require-common-first.js -test/js/node/test/parallel/test-eslint-required-modules.js -test/js/node/test/parallel/test-eval-strict-referenceerror.js -test/js/node/test/parallel/test-eval.js -test/js/node/test/parallel/test-events-add-abort-listener.mjs -test/js/node/test/parallel/test-exception-handler.js -test/js/node/test/parallel/test-exception-handler2.js -test/js/node/test/parallel/test-fetch.mjs -test/js/node/test/parallel/test-file-read-noexist.js -test/js/node/test/parallel/test-file-validate-mode-flag.js -test/js/node/test/parallel/test-file-write-stream.js -test/js/node/test/parallel/test-file-write-stream2.js -test/js/node/test/parallel/test-file-write-stream3.js -test/js/node/test/parallel/test-file-write-stream4.js -test/js/node/test/parallel/test-file-write-stream5.js -test/js/node/test/parallel/test-filehandle-close.js -test/js/node/test/parallel/test-finalization-registry-shutdown.js -test/js/node/test/parallel/test-fs-options-immutable.js -test/js/node/test/parallel/test-fs-promises-watch.js -test/js/node/test/parallel/test-fs-read-position-validation.mjs -test/js/node/test/parallel/test-fs-read-promises-position-validation.mjs -test/js/node/test/parallel/test-fs-readSync-position-validation.mjs -test/js/node/test/parallel/test-fs-stat-date.mjs -test/js/node/test/parallel/test-fs-watch-abort-signal.js -test/js/node/test/parallel/test-fs-watch-close-when-destroyed.js -test/js/node/test/parallel/test-fs-watch-encoding.js -test/js/node/test/parallel/test-fs-watch-recursive-add-file-to-existing-subfolder.js -test/js/node/test/parallel/test-fs-watch-recursive-add-file-with-url.js -test/js/node/test/parallel/test-fs-watch-recursive-add-file.js -test/js/node/test/parallel/test-fs-watch-recursive-add-folder.js -test/js/node/test/parallel/test-fs-watch-recursive-assert-leaks.js -test/js/node/test/parallel/test-fs-watch-recursive-delete.js -test/js/node/test/parallel/test-fs-watch-recursive-sync-write.js -test/js/node/test/parallel/test-fs-watch-recursive-update-file.js -test/js/node/test/parallel/test-fs-watch-recursive-watch-file.js -test/js/node/test/parallel/test-fs-watch-ref-unref.js -test/js/node/test/parallel/test-fs-watch.js -test/js/node/test/parallel/test-fs-watchfile.js -test/js/node/test/parallel/test-gc-http-client-connaborted.js -test/js/node/test/parallel/test-global-domexception.js -test/js/node/test/parallel/test-global-encoder.js -test/js/node/test/parallel/test-global-webcrypto.js -test/js/node/test/parallel/test-handle-wrap-close-abort.js -test/js/node/test/parallel/test-icu-env.js -test/js/node/test/parallel/test-icu-punycode.js -test/js/node/test/parallel/test-icu-transcode.js -test/js/node/test/parallel/test-inspect-support-for-node_options.js -test/js/node/test/parallel/test-inspector-enabled.js -test/js/node/test/parallel/test-inspector-has-inspector-false.js -test/js/node/test/parallel/test-inspector-stops-no-file.js -test/js/node/test/parallel/test-inspector-workers-flat-list.js -test/js/node/test/parallel/test-instanceof.js -test/js/node/test/parallel/test-internal-module-require.js -test/js/node/test/parallel/test-internal-process-binding.js -test/js/node/test/parallel/test-intl-v8BreakIterator.js -test/js/node/test/parallel/test-intl.js -test/js/node/test/parallel/test-kill-segfault-freebsd.js -test/js/node/test/parallel/test-listen-fd-detached-inherit.js -test/js/node/test/parallel/test-listen-fd-detached.js -test/js/node/test/parallel/test-math-random.js -test/js/node/test/parallel/test-memory-usage-emfile.js -test/js/node/test/parallel/test-memory-usage.js -test/js/node/test/parallel/test-messagechannel.js -test/js/node/test/parallel/test-messageevent-brandcheck.js -test/js/node/test/parallel/test-microtask-queue-integration.js -test/js/node/test/parallel/test-microtask-queue-run-immediate.js -test/js/node/test/parallel/test-microtask-queue-run.js -test/js/node/test/parallel/test-mime-api.js -test/js/node/test/parallel/test-mime-whatwg.js -test/js/node/test/parallel/test-net-connect-custom-lookup-non-string-address.mjs -test/js/node/test/parallel/test-net-listen-handle-in-cluster-1.js -test/js/node/test/parallel/test-net-server-async-dispose.mjs -test/js/node/test/parallel/test-net-server-blocklist.js -test/js/node/test/parallel/test-net-server-close-before-ipc-response.js -test/js/node/test/parallel/test-net-socket-constructor.js -test/js/node/test/parallel/test-next-tick-doesnt-hang.js -test/js/node/test/parallel/test-next-tick-domain.js -test/js/node/test/parallel/test-next-tick-errors.js -test/js/node/test/parallel/test-next-tick-fixed-queue-regression.js -test/js/node/test/parallel/test-next-tick-intentional-starvation.js -test/js/node/test/parallel/test-next-tick-ordering.js -test/js/node/test/parallel/test-next-tick-ordering2.js -test/js/node/test/parallel/test-next-tick-when-exiting.js -test/js/node/test/parallel/test-next-tick.js -test/js/node/test/parallel/test-no-addons-resolution-condition.js -test/js/node/test/parallel/test-no-node-snapshot.js -test/js/node/test/parallel/test-os-eol.js -test/js/node/test/parallel/test-os-homedir-no-envvar.js -test/js/node/test/parallel/test-os-process-priority.js -test/js/node/test/parallel/test-os-userinfo-handles-getter-errors.js -test/js/node/test/parallel/test-os.js -test/js/node/test/parallel/test-outgoing-message-destroy.js -test/js/node/test/parallel/test-outgoing-message-pipe.js -test/js/node/test/parallel/test-parse-args.mjs -test/js/node/test/parallel/test-perf-gc-crash.js -test/js/node/test/parallel/test-performance-measure.js -test/js/node/test/parallel/test-performanceobserver-gc.js -test/js/node/test/parallel/test-permission-fs-supported.js -test/js/node/test/parallel/test-pipe-abstract-socket-http.js -test/js/node/test/parallel/test-pipe-address.js -test/js/node/test/parallel/test-pipe-file-to-http.js -test/js/node/test/parallel/test-pipe-head.js -test/js/node/test/parallel/test-pipe-outgoing-message-data-emitted-after-ended.js -test/js/node/test/parallel/test-pipe-return-val.js -test/js/node/test/parallel/test-pipe-writev.js -test/js/node/test/parallel/test-preload-print-process-argv.js -test/js/node/test/parallel/test-preload-self-referential.js -test/js/node/test/parallel/test-primitive-timer-leak.js -test/js/node/test/parallel/test-process-beforeexit-throw-exit.js -test/js/node/test/parallel/test-process-beforeexit.js -test/js/node/test/parallel/test-process-exception-capture-should-abort-on-uncaught.js -test/js/node/test/parallel/test-process-exception-capture.js -test/js/node/test/parallel/test-process-execpath.js -test/js/node/test/parallel/test-process-exit-code-validation.js -test/js/node/test/parallel/test-process-ppid.js -test/js/node/test/parallel/test-process-really-exit.js -test/js/node/test/parallel/test-process-ref-unref.js -test/js/node/test/parallel/test-promise-handled-rejection-no-warning.js -test/js/node/test/parallel/test-promise-unhandled-default.js -test/js/node/test/parallel/test-promise-unhandled-error.js -test/js/node/test/parallel/test-promise-unhandled-flag.js -test/js/node/test/parallel/test-promise-unhandled-issue-43655.js -test/js/node/test/parallel/test-promise-unhandled-silent-no-hook.js -test/js/node/test/parallel/test-promise-unhandled-silent.js -test/js/node/test/parallel/test-promise-unhandled-throw-handler.js -test/js/node/test/parallel/test-promise-unhandled-throw.js -test/js/node/test/parallel/test-promise-unhandled-warn-no-hook.js -test/js/node/test/parallel/test-promises-unhandled-proxy-rejections.js -test/js/node/test/parallel/test-promises-unhandled-rejections.js -test/js/node/test/parallel/test-promises-unhandled-symbol-rejections.js -test/js/node/test/parallel/test-promises-warning-on-unhandled-rejection.js -test/js/node/test/parallel/test-punycode.js -test/js/node/test/parallel/test-querystring-escape.js -test/js/node/test/parallel/test-querystring-maxKeys-non-finite.js -test/js/node/test/parallel/test-querystring-multichar-separator.js -test/js/node/test/parallel/test-querystring.js -test/js/node/test/parallel/test-queue-microtask.js -test/js/node/test/parallel/test-quic-internal-endpoint-listen-defaults.js -test/js/node/test/parallel/test-quic-internal-endpoint-options.js -test/js/node/test/parallel/test-quic-internal-endpoint-stats-state.js -test/js/node/test/parallel/test-quic-internal-setcallbacks.js -test/js/node/test/parallel/test-readable-from-iterator-closing.js -test/js/node/test/parallel/test-readable-from-web-enqueue-then-close.js -test/js/node/test/parallel/test-readable-from.js -test/js/node/test/parallel/test-readable-large-hwm.js -test/js/node/test/parallel/test-readable-single-end.js -test/js/node/test/parallel/test-ref-unref-return.js -test/js/node/test/parallel/test-regression-object-prototype.js -test/js/node/test/parallel/test-repl-clear-immediate-crash.js -test/js/node/test/parallel/test-repl-close.js -test/js/node/test/parallel/test-repl-dynamic-import.js -test/js/node/test/parallel/test-repl-preview-without-inspector.js -test/js/node/test/parallel/test-repl-syntax-error-handling.js -test/js/node/test/parallel/test-require-cache.js -test/js/node/test/parallel/test-require-delete-array-iterator.js -test/js/node/test/parallel/test-require-dot.js -test/js/node/test/parallel/test-require-empty-main.js -test/js/node/test/parallel/test-require-enoent-dir.js -test/js/node/test/parallel/test-require-exceptions.js -test/js/node/test/parallel/test-require-extension-over-directory.js -test/js/node/test/parallel/test-require-extensions-main.js -test/js/node/test/parallel/test-require-extensions-same-filename-as-dir-trailing-slash.js -test/js/node/test/parallel/test-require-invalid-main-no-exports.js -test/js/node/test/parallel/test-require-invalid-package.js -test/js/node/test/parallel/test-require-json.js -test/js/node/test/parallel/test-require-long-path.js -test/js/node/test/parallel/test-require-node-prefix.js -test/js/node/test/parallel/test-require-nul.js -test/js/node/test/parallel/test-require-process.js -test/js/node/test/parallel/test-require-resolve.js -test/js/node/test/parallel/test-require-symlink.js -test/js/node/test/parallel/test-require-unicode.js -test/js/node/test/parallel/test-resource-usage.js -test/js/node/test/parallel/test-runner-aliases.js -test/js/node/test/parallel/test-runner-assert.js -test/js/node/test/parallel/test-runner-filter-warning.js -test/js/node/test/parallel/test-runner-root-after-with-refed-handles.js -test/js/node/test/parallel/test-runner-source-maps-invalid-json.js -test/js/node/test/parallel/test-runner-subtest-after-hook.js -test/js/node/test/parallel/test-runner-typechecking.js -test/js/node/test/parallel/test-set-http-max-http-headers.js -test/js/node/test/parallel/test-set-process-debug-port.js -test/js/node/test/parallel/test-shadow-realm-gc-module.js -test/js/node/test/parallel/test-shadow-realm-module.js -test/js/node/test/parallel/test-shadow-realm-preload-module.js -test/js/node/test/parallel/test-shadow-realm-prepare-stack-trace.js -test/js/node/test/parallel/test-shadow-realm.js -test/js/node/test/parallel/test-sigint-infinite-loop.js -test/js/node/test/parallel/test-signal-args.js -test/js/node/test/parallel/test-signal-handler-remove-on-exit.js -test/js/node/test/parallel/test-signal-handler.js -test/js/node/test/parallel/test-signal-unregister.js -test/js/node/test/parallel/test-socket-address.js -test/js/node/test/parallel/test-socket-options-invalid.js -test/js/node/test/parallel/test-socket-write-after-fin-error.js -test/js/node/test/parallel/test-socketaddress.js -test/js/node/test/parallel/test-spawn-cmd-named-pipe.js -test/js/node/test/parallel/test-stdin-child-proc.js -test/js/node/test/parallel/test-stdin-from-file-spawn.js -test/js/node/test/parallel/test-stdin-from-file.js -test/js/node/test/parallel/test-stdin-hang.js -test/js/node/test/parallel/test-stdin-pause-resume-sync.js -test/js/node/test/parallel/test-stdin-pause-resume.js -test/js/node/test/parallel/test-stdin-pipe-large.js -test/js/node/test/parallel/test-stdin-pipe-resume.js -test/js/node/test/parallel/test-stdin-resume-pause.js -test/js/node/test/parallel/test-stdin-script-child-option.js -test/js/node/test/parallel/test-stdin-script-child.js -test/js/node/test/parallel/test-stdio-closed.js -test/js/node/test/parallel/test-stdio-pipe-access.js -test/js/node/test/parallel/test-stdio-pipe-stderr.js -test/js/node/test/parallel/test-stdio-undestroy.js -test/js/node/test/parallel/test-stdout-cannot-be-closed-child-process-pipe.js -test/js/node/test/parallel/test-stdout-pipeline-destroy.js -test/js/node/test/parallel/test-stdout-stderr-reading.js -test/js/node/test/parallel/test-stdout-stderr-write.js -test/js/node/test/parallel/test-stdout-to-file.js -test/js/node/test/parallel/test-stream-finished.js -test/js/node/test/parallel/test-stream-iterator-helpers-test262-tests.mjs -test/js/node/test/parallel/test-stream-readable-to-web.js -test/js/node/test/parallel/test-stream-some-find-every.mjs -test/js/node/test/parallel/test-stream-toWeb-allows-server-response.js -test/js/node/test/parallel/test-string-decoder-end.js -test/js/node/test/parallel/test-string-decoder-fuzz.js -test/js/node/test/parallel/test-string-decoder.js -test/js/node/test/parallel/test-stringbytes-external.js -test/js/node/test/parallel/test-sync-fileread.js -test/js/node/test/parallel/test-sys.js -test/js/node/test/parallel/test-timers-immediate-promisified.js -test/js/node/test/parallel/test-timers-interval-promisified.js -test/js/node/test/parallel/test-timers-timeout-promisified.js -test/js/node/test/parallel/test-tty-backwards-api.js -test/js/node/test/parallel/test-tty-stdin-end.js -test/js/node/test/parallel/test-tty-stdin-pipe.js -test/js/node/test/parallel/test-tz-version.js -test/js/node/test/parallel/test-unhandled-exception-with-worker-inuse.js -test/js/node/test/parallel/test-url-canParse-whatwg.js -test/js/node/test/parallel/test-url-domain-ascii-unicode.js -test/js/node/test/parallel/test-url-format-invalid-input.js -test/js/node/test/parallel/test-url-format-whatwg.js -test/js/node/test/parallel/test-url-format.js -test/js/node/test/parallel/test-url-is-url-internal.js -test/js/node/test/parallel/test-url-parse-format.js -test/js/node/test/parallel/test-url-parse-invalid-input.js -test/js/node/test/parallel/test-url-parse-query.js -test/js/node/test/parallel/test-url-relative.js -test/js/node/test/parallel/test-url-revokeobjecturl.js -test/js/node/test/parallel/test-url-urltooptions.js -test/js/node/test/parallel/test-utf8-scripts.js -test/js/node/test/parallel/test-util-promisify-custom-names.mjs -test/js/node/test/parallel/test-warn-stream-wrap.js -test/js/node/test/parallel/test-weakref.js -test/js/node/test/parallel/test-webcrypto-cryptokey-workers.js -test/js/node/test/parallel/test-webcrypto-derivebits-cfrg.js -test/js/node/test/parallel/test-webcrypto-derivekey-cfrg.js -test/js/node/test/parallel/test-webcrypto-derivekey.js -test/js/node/test/parallel/test-webcrypto-digest.js -test/js/node/test/parallel/test-webcrypto-encrypt-decrypt-aes.js -test/js/node/test/parallel/test-webcrypto-encrypt-decrypt.js -test/js/node/test/parallel/test-webcrypto-getRandomValues.js -test/js/node/test/parallel/test-webcrypto-random.js -test/js/node/test/parallel/test-webcrypto-sign-verify.js -test/js/node/test/parallel/test-webcrypto-wrap-unwrap.js -test/js/node/test/parallel/test-websocket.js -test/js/node/test/parallel/test-webstream-string-tag.js -test/js/node/test/parallel/test-windows-abort-exitcode.js -test/js/node/test/parallel/test-windows-failed-heap-allocation.js -test/js/node/test/parallel/test-worker-abort-on-uncaught-exception.js -test/js/node/test/parallel/test-worker-arraybuffer-zerofill.js -test/js/node/test/parallel/test-worker-cjs-workerdata.js -test/js/node/test/parallel/test-worker-cleanexit-with-js.js -test/js/node/test/parallel/test-worker-cleanexit-with-moduleload.js -test/js/node/test/parallel/test-worker-console-listeners.js -test/js/node/test/parallel/test-worker-dns-terminate-during-query.js -test/js/node/test/parallel/test-worker-environmentdata.js -test/js/node/test/parallel/test-worker-esm-exit.js -test/js/node/test/parallel/test-worker-esm-missing-main.js -test/js/node/test/parallel/test-worker-esmodule.js -test/js/node/test/parallel/test-worker-event.js -test/js/node/test/parallel/test-worker-exit-event-error.js -test/js/node/test/parallel/test-worker-exit-from-uncaught-exception.js -test/js/node/test/parallel/test-worker-exit-heapsnapshot.js -test/js/node/test/parallel/test-worker-fs-stat-watcher.js -test/js/node/test/parallel/test-worker-heap-snapshot.js -test/js/node/test/parallel/test-worker-http2-generic-streams-terminate.js -test/js/node/test/parallel/test-worker-invalid-workerdata.js -test/js/node/test/parallel/test-worker-load-file-with-extension-other-than-js.js -test/js/node/test/parallel/test-worker-memory.js -test/js/node/test/parallel/test-worker-message-channel-sharedarraybuffer.js -test/js/node/test/parallel/test-worker-message-event.js -test/js/node/test/parallel/test-worker-message-port-constructor.js -test/js/node/test/parallel/test-worker-message-port-infinite-message-loop.js -test/js/node/test/parallel/test-worker-message-port-receive-message.js -test/js/node/test/parallel/test-worker-message-port-terminate-transfer-list.js -test/js/node/test/parallel/test-worker-message-port-transfer-duplicate.js -test/js/node/test/parallel/test-worker-message-port-transfer-terminate.js -test/js/node/test/parallel/test-worker-message-port-wasm-module.js -test/js/node/test/parallel/test-worker-message-port-wasm-threads.js -test/js/node/test/parallel/test-worker-mjs-workerdata.js -test/js/node/test/parallel/test-worker-nested-on-process-exit.js -test/js/node/test/parallel/test-worker-nested-uncaught.js -test/js/node/test/parallel/test-worker-no-sab.js -test/js/node/test/parallel/test-worker-non-fatal-uncaught-exception.js -test/js/node/test/parallel/test-worker-on-process-exit.js -test/js/node/test/parallel/test-worker-onmessage-not-a-function.js -test/js/node/test/parallel/test-worker-onmessage.js -test/js/node/test/parallel/test-worker-parent-port-ref.js -test/js/node/test/parallel/test-worker-process-argv.js -test/js/node/test/parallel/test-worker-ref-onexit.js -test/js/node/test/parallel/test-worker-ref.js -test/js/node/test/parallel/test-worker-relative-path-double-dot.js -test/js/node/test/parallel/test-worker-relative-path.js -test/js/node/test/parallel/test-worker-safe-getters.js -test/js/node/test/parallel/test-worker-sharedarraybuffer-from-worker-thread.js -test/js/node/test/parallel/test-worker-terminate-http2-respond-with-file.js -test/js/node/test/parallel/test-worker-terminate-nested.js -test/js/node/test/parallel/test-worker-terminate-null-handler.js -test/js/node/test/parallel/test-worker-terminate-timers.js -test/js/node/test/parallel/test-worker-type-check.js -test/js/node/test/parallel/test-worker-unref-from-message-during-exit.js -test/js/node/test/parallel/test-worker-workerdata-sharedarraybuffer.js -test/js/node/test/parallel/test-worker.js -test/js/node/test/parallel/test-worker.mjs test/js/node/test_runner/node-test.test.ts test/js/node/timers.promises/timers.promises.test.ts test/js/node/timers/node-timers.test.ts From 9485456800c1f514d32d77c02ee0ad012fadaa34 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 17:34:34 -0700 Subject: [PATCH 37/60] merge fix --- src/bun.js/bindings/bindings.cpp | 3 +-- src/bun.js/webcore/Blob.zig | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 28adf9005f5..5d4a0c77440 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -4938,7 +4938,6 @@ static void fromErrorInstance(ZigException& except, JSC::JSGlobalObject* global, } if (except.stack.frames_len == 0 && getFromSourceURL) { - JSC::JSValue sourceURL = getNonObservable(vm, global, obj, vm.propertyNames->sourceURL); if (!scope.clearExceptionExceptTermination()) [[unlikely]] return; @@ -4987,7 +4986,7 @@ static void fromErrorInstance(ZigException& except, JSC::JSGlobalObject* global, { for (int i = 1; i < except.stack.frames_len; i++) { - auto frame = except->stack.frames_ptr[i]; + auto frame = except.stack.frames_ptr[i]; frame.function_name.deref(); frame.source_url.deref(); } diff --git a/src/bun.js/webcore/Blob.zig b/src/bun.js/webcore/Blob.zig index 1bc3e99e9ba..4b8242bb5c9 100644 --- a/src/bun.js/webcore/Blob.zig +++ b/src/bun.js/webcore/Blob.zig @@ -4433,7 +4433,7 @@ pub const Internal = struct { return out.toJS(globalThis); } else { var str = ZigString.init(this.toOwnedSlice()); - str.mark(); + str.markGlobal(); return str.toExternalValue(globalThis); } } From 31e3b1dfd0b0a1e37a91abc43b820eaae358fdac Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 18:15:30 -0700 Subject: [PATCH 38/60] fix jsc warning from asan --- scripts/runner.node.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index bb5210840b7..3f4acc48c28 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -588,7 +588,7 @@ async function runTests() { } if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; - env["ASAN_OPTIONS=detect_leaks"] = "1"; + env["ASAN_OPTIONS"] = "detect_leaks=1:handle_segv=0"; // prettier-ignore env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } @@ -1318,7 +1318,7 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { } if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; - env["ASAN_OPTIONS=detect_leaks"] = "1"; + env["ASAN_OPTIONS"] = "detect_leaks=1:handle_segv=0"; // prettier-ignore env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } From c1c7583ee58d0659988d65817b43c5a38a1507ad Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 18:45:56 -0700 Subject: [PATCH 39/60] try a different option, previous one killed ci stacktraces --- scripts/runner.node.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 3f4acc48c28..39ad7d74636 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -588,7 +588,7 @@ async function runTests() { } if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; - env["ASAN_OPTIONS"] = "detect_leaks=1:handle_segv=0"; + env["ASAN_OPTIONS"] = "detect_leaks=1:allow_user_segv_handler=1"; // prettier-ignore env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } @@ -1318,7 +1318,7 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { } if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; - env["ASAN_OPTIONS"] = "detect_leaks=1:handle_segv=0"; + env["ASAN_OPTIONS"] = "detect_leaks=1:allow_user_segv_handler=1"; // prettier-ignore env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } From c87efbe22dd1ead7b990e868a5f6a92d5bb212f9 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 15 Sep 2025 23:04:29 -0700 Subject: [PATCH 40/60] more --- scripts/runner.node.mjs | 12 ++++----- src/bun.js.zig | 4 +-- src/bun.js/api/bun/socket.zig | 2 +- src/bun.zig | 1 + test/leaksan.supp | 6 +++++ test/no-validate-leaksan.txt | 50 +++++++++++++++++++++++++++++++++++ 6 files changed, 66 insertions(+), 9 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 39ad7d74636..d44297e8389 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -587,10 +587,10 @@ async function runTests() { env.BUN_JSC_dumpSimulatedThrows = "1"; } if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { - env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; - env["ASAN_OPTIONS"] = "detect_leaks=1:allow_user_segv_handler=1"; + env.BUN_DESTRUCT_VM_ON_EXIT = "1"; + env.ASAN_OPTIONS = "allow_user_segv_handler=1:disable_coredump=0:detect_leaks=1"; // prettier-ignore - env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; + env.LSAN_OPTIONS = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } return runTest(title, async () => { const { ok, error, stdout, crashes } = await spawnBun(execPath, { @@ -1317,10 +1317,10 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { env.BUN_JSC_dumpSimulatedThrows = "1"; } if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { - env["BUN_DESTRUCT_VM_ON_EXIT"] = "1"; - env["ASAN_OPTIONS"] = "detect_leaks=1:allow_user_segv_handler=1"; + env.BUN_DESTRUCT_VM_ON_EXIT = "1"; + env.ASAN_OPTIONS = "allow_user_segv_handler=1:disable_coredump=0:detect_leaks=1"; // prettier-ignore - env["LSAN_OPTIONS"] = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; + env.LSAN_OPTIONS = `malloc_context_size=100:print_suppressions=0:suppressions=${process.cwd()}/test/leaksan.supp`; } const { ok, error, stdout, crashes } = await spawnBun(execPath, { diff --git a/src/bun.js.zig b/src/bun.js.zig index 337045915e9..437c653c38e 100644 --- a/src/bun.js.zig +++ b/src/bun.js.zig @@ -47,7 +47,7 @@ pub const Run = struct { vm.preload = ctx.preloads; vm.argv = ctx.passthrough; vm.arena = &run.arena; - vm.allocator = arena.allocator(); + vm.allocator = vm.arena.allocator(); b.options.install = ctx.install; b.resolver.opts.install = ctx.install; @@ -185,7 +185,7 @@ pub const Run = struct { vm.preload = ctx.preloads; vm.argv = ctx.passthrough; vm.arena = &run.arena; - vm.allocator = arena.allocator(); + vm.allocator = vm.arena.allocator(); if (ctx.runtime_options.eval.script.len > 0) { const script_source = try bun.default_allocator.create(logger.Source); diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index 7d8b5bb6a54..703c7390297 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -846,7 +846,7 @@ pub fn NewSocket(comptime ssl: bool) type { }; const text = bun.fmt.formatIp(address, &text_buf) catch unreachable; - return ZigString.init(text).toJS(globalThis); + return bun.String.createUTF8ForJS(globalThis, text) catch @panic("unreachable"); } pub fn getRemotePort(this: *This, _: *jsc.JSGlobalObject) JSValue { diff --git a/src/bun.zig b/src/bun.zig index 9091ba0f8a4..210fee7dc5b 100644 --- a/src/bun.zig +++ b/src/bun.zig @@ -23,6 +23,7 @@ pub const debug_allocator: std.mem.Allocator = if (Environment.isDebug or Enviro debug_allocator_data.allocator else default_allocator; + pub const debug_allocator_data = struct { comptime { if (!Environment.isDebug) @compileError("only available in debug"); diff --git a/test/leaksan.supp b/test/leaksan.supp index 8b3d07858b2..b049a12d70e 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -31,3 +31,9 @@ leak:uws_create_app leak:lshpack_wrapper_decode leak:lshpack_wrapper_init leak:bun.js.ipc.onData2 +leak:bun.js.node.fs_events.InitLibrary +leak:bun.js.node.fs_events.FSEventsLoop._schedule +leak:Bun__Path__join +leak:Bun__Path__resolve + +leak:fromErrorInstance diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index f6c35d0f18a..b57f8e7ff4a 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -58,6 +58,52 @@ test/js/node/test/parallel/test-worker.js test/js/node/test/parallel/test-worker.mjs +# error exit root cause unclear +test/js/node/test/parallel/test-util-callbackify.js +test/js/node/test/sequential/test-child-process-execsync.js +test/js/node/test/parallel/test-child-process-exec-maxbuf.js +test/js/node/test/parallel/test-fs-readfile-eof.js +test/js/node/test/parallel/test-child-process-promisified.js +test/js/node/test/parallel/test-child-process-exec-encoding.js +test/js/node/test/parallel/test-child-process-execfile.js + + +# crash for reasons not related to LSAN +test/js/node/test/parallel/test-fs-watch-recursive-watch-file.js +test/js/node/test/parallel/test-dgram-send-address-types.js +test/js/node/test/parallel/test-fs-watch.js +test/js/node/test/parallel/test-dgram-unref.js + + +# ASSERTION FAILED: m_normalWorld->hasOneRef() +test/js/node/test/parallel/test-unhandled-exception-with-worker-inuse.js +test/js/node/test/parallel/test-process-beforeexit-throw-exit.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-1.js +test/js/node/test/parallel/test-crypto-prime.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-4.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-2.js +test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-3.js + + +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +test/js/node/test/parallel/test-http-server-keep-alive-max-requests-null.js +test/js/node/test/parallel/test-http-keep-alive-pipeline-max-requests.js +test/js/node/test/parallel/test-https-connecting-to-http.js +test/js/node/test/parallel/test-http-header-overflow.js +test/js/node/test/parallel/test-http-request-smuggling-content-length.js +test/js/node/test/parallel/test-http-server-keep-alive-defaults.js +test/js/node/test/parallel/test-http-socket-error-listeners.js +test/js/node/test/parallel/test-http-server-destroy-socket-on-client-error.js +test/js/node/test/parallel/test-http-dummy-characters-smuggling.js +test/js/node/test/parallel/test-http-missing-header-separator-lf.js +test/js/node/test/parallel/test-http-invalid-te.js +test/js/node/test/parallel/test-http-missing-header-separator-cr.js +test/js/node/test/parallel/test-http-server-reject-chunked-with-content-length.js +test/js/node/test/parallel/test-http-chunked-smuggling.js +test/js/node/test/parallel/test-http-double-content-length.js +test/js/node/test/parallel/test-http-blank-header.js + + test/bake/deinitialization.test.ts test/bake/dev-and-prod.test.ts test/bake/dev/bundle.test.ts @@ -1040,6 +1086,10 @@ test/bake/dev/incremental-graph-edge-deletion.test.ts test/bake/dev/import-meta-inline.test.ts test/cli/update_interactive_snapshots.test.ts test/napi/node-napi-tests/test/js-native-api/6_object_wrap/do.test.ts +test/regression/issue/tty-reopen-after-stdin-eof.test.ts +test/regression/issue/tty-readstream-ref-unref.test.ts +test/regression/issue/tui-app-tty-pattern.test.ts +test/js/web/websocket/websocket-custom-headers.test.ts vendor/elysia/test/a.test.ts From 1a630627e99faee79ccfc7ce69c28b2dc8b42aa9 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Tue, 16 Sep 2025 00:40:05 -0700 Subject: [PATCH 41/60] more --- .vscode/launch.json | 11 +- src/bun.js/bindings/ZigString.zig | 3 +- src/bun.js/bindings/bindings.cpp | 6 +- src/bun.js/node/node_fs.zig | 10 +- src/codegen/generate-classes.ts | 2 +- test/leaksan.supp | 7 + test/no-validate-leaksan.txt | 1000 +---------------------------- 7 files changed, 42 insertions(+), 997 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index bdeb6c497a8..fd352201ecf 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -25,6 +25,9 @@ // "BUN_JSC_validateExceptionChecks": "1", // "BUN_JSC_dumpSimulatedThrows": "1", // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", + "BUN_DESTRUCT_VM_ON_EXIT": "1", + "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", + "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=0:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", "sourceMap": { @@ -57,11 +60,17 @@ "name": "bun run [file]", "program": "${workspaceFolder}/build/debug/bun-debug", "args": ["${file}"], - "cwd": "${fileDirname}", + "cwd": "${workspaceFolder}", "env": { "FORCE_COLOR": "0", "BUN_DEBUG_QUIET_LOGS": "1", "BUN_GARBAGE_COLLECTOR_LEVEL": "2", + // "BUN_JSC_validateExceptionChecks": "1", + // "BUN_JSC_dumpSimulatedThrows": "1", + // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", + "BUN_DESTRUCT_VM_ON_EXIT": "1", + "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", + "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=0:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", "sourceMap": { diff --git a/src/bun.js/bindings/ZigString.zig b/src/bun.js/bindings/ZigString.zig index 311173f9b3e..f55da9cfdb9 100644 --- a/src/bun.js/bindings/ZigString.zig +++ b/src/bun.js/bindings/ZigString.zig @@ -726,7 +726,6 @@ pub const ZigString = extern struct { } } - extern fn ZigString__toExternalValue(this: *const ZigString, global: *JSGlobalObject) JSValue; pub fn toExternalValue(this: *const ZigString, global: *JSGlobalObject) JSValue { this.assertGlobal(); if (this.len > String.max_length()) { @@ -734,7 +733,7 @@ pub const ZigString = extern struct { global.ERR(.STRING_TOO_LONG, "Cannot create a string longer than 2^32-1 characters", .{}).throw() catch {}; // TODO: propagate? return .zero; } - return ZigString__toExternalValue(this, global); + return bun.cpp.ZigString__toExternalValue(this, global); } extern fn ZigString__toExternalValueWithCallback( diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 5d4a0c77440..d0c8b206144 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -3167,18 +3167,16 @@ JSC::EncodedJSValue ZigString__toExternalU16(const uint16_t* arg0, size_t len, J return JSC::JSValue::encode(JSC::jsString(global->vm(), WTFMove(ref))); } + // This must be a globally allocated string -JSC::EncodedJSValue ZigString__toExternalValue(const ZigString* arg0, JSC::JSGlobalObject* arg1) +[[ZIG_EXPORT(nothrow)]] JSC::EncodedJSValue ZigString__toExternalValue(const ZigString* arg0, JSC::JSGlobalObject* arg1) { - ZigString str = *arg0; if (str.len == 0) { return JSC::JSValue::encode(JSC::jsEmptyString(arg1->vm())); } - if (Zig::isTaggedUTF16Ptr(str.ptr)) { auto ref = String(ExternalStringImpl::create({ reinterpret_cast(Zig::untag(str.ptr)), str.len }, Zig::untagVoid(str.ptr), free_global_string)); - return JSC::JSValue::encode(JSC::jsString(arg1->vm(), WTFMove(ref))); } else { auto ref = String(ExternalStringImpl::create({ Zig::untag(str.ptr), str.len }, Zig::untagVoid(str.ptr), free_global_string)); diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index d06d3d108bc..87181faf01a 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -3193,7 +3193,7 @@ const Return = struct { pub const Link = void; pub const Lstat = StatOrNotFound; pub const Mkdir = StringOrUndefined; - pub const Mkdtemp = jsc.ZigString; + pub const Mkdtemp = jsc.JSValue; pub const Open = FD; pub const WriteFile = void; pub const Readv = Read; @@ -4128,16 +4128,12 @@ pub const NodeFS = struct { .path = prefix_buf[0 .. len + 6], } }; } - return .{ - .result = bun.handleOom(jsc.ZigString.dupeForJS(bun.sliceTo(req.path, 0), bun.default_allocator)), - }; + return .initResult(bun.String.createUTF8ForJS(this.vm.?.global, bun.sliceTo(req.path, 0)) catch bun.outOfMemory()); } const rc = c.mkdtemp(prefix_buf); if (rc) |ptr| { - return .{ - .result = bun.handleOom(jsc.ZigString.dupeForJS(bun.sliceTo(ptr, 0), bun.default_allocator)), - }; + return .initResult(bun.String.createUTF8ForJS(this.vm.?.global, bun.sliceTo(ptr, 0)) catch bun.outOfMemory()); } // c.getErrno(rc) returns SUCCESS if rc is -1 so we call std.c._errno() directly diff --git a/src/codegen/generate-classes.ts b/src/codegen/generate-classes.ts index 2cb7ae9993f..101992c15db 100644 --- a/src/codegen/generate-classes.ts +++ b/src/codegen/generate-classes.ts @@ -718,7 +718,7 @@ JSC::EncodedJSValue JSC_HOST_CALL_ATTRIBUTES ${name}::construct(JSC::JSGlobalObj structure = InternalFunction::createSubclassStructure(globalObject, newTarget, functionGlobalObject->${className(typeName)}Structure()); RETURN_IF_EXCEPTION(scope, {}); } - + ` + (!obj.constructNeedsThis ? ` diff --git a/test/leaksan.supp b/test/leaksan.supp index b049a12d70e..22fc70dd699 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -35,5 +35,12 @@ leak:bun.js.node.fs_events.InitLibrary leak:bun.js.node.fs_events.FSEventsLoop._schedule leak:Bun__Path__join leak:Bun__Path__resolve +leak:Zig::GlobalObject::moduleLoaderImportModule +leak:bake.FrameworkRouter.JSFrameworkRouter.getFileIdForRouter +leak:ast.Macro.MacroContext.call +leak:bun.js.webcore.Blob.findOrCreateFileFromPath__anon +leak:BunString::toWTFString(BunString::ZeroCopyTag) +leak:bun.js.node.node_fs_binding.Bindings(.mkdtemp).runSync +leak:bun.js.ModuleLoader.fetchBuiltinModule leak:fromErrorInstance diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index b57f8e7ff4a..f30655485fd 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -66,6 +66,16 @@ test/js/node/test/parallel/test-fs-readfile-eof.js test/js/node/test/parallel/test-child-process-promisified.js test/js/node/test/parallel/test-child-process-exec-encoding.js test/js/node/test/parallel/test-child-process-execfile.js +test/bake/dev-and-prod.test.ts +test/bake/dev/bundle.test.ts +test/bake/dev/css.test.ts +test/bake/dev/esm.test.ts +test/bake/dev/hot.test.ts +test/bake/dev/react-spa.test.ts +test/bake/dev/sourcemap.test.ts +test/bake/dev/ssg-pages-router.test.ts +test/bundler/bundler_compile.test.ts +test/bundler/bundler_plugin.test.ts # crash for reasons not related to LSAN @@ -73,6 +83,12 @@ test/js/node/test/parallel/test-fs-watch-recursive-watch-file.js test/js/node/test/parallel/test-dgram-send-address-types.js test/js/node/test/parallel/test-fs-watch.js test/js/node/test/parallel/test-dgram-unref.js +test/js/node/test/parallel/test-fs-promises-watch.js +test/bake/dev/ecosystem.test.ts +test/bake/dev/html.test.ts +test/bake/dev/plugins.test.ts +test/bake/dev/stress.test.ts +test/bake/dev/vfile.test.ts # ASSERTION FAILED: m_normalWorld->hasOneRef() @@ -102,994 +118,14 @@ test/js/node/test/parallel/test-http-server-reject-chunked-with-content-length.j test/js/node/test/parallel/test-http-chunked-smuggling.js test/js/node/test/parallel/test-http-double-content-length.js test/js/node/test/parallel/test-http-blank-header.js - - -test/bake/deinitialization.test.ts -test/bake/dev-and-prod.test.ts -test/bake/dev/bundle.test.ts -test/bake/dev/css.test.ts -test/bake/dev/ecosystem.test.ts -test/bake/dev/esm.test.ts -test/bake/dev/hot.test.ts -test/bake/dev/html.test.ts -test/bake/dev/plugins.test.ts -test/bake/dev/react-spa.test.ts -test/bake/dev/sourcemap.test.ts -test/bake/dev/ssg-pages-router.test.ts -test/bake/dev/stress.test.ts -test/bake/dev/vfile.test.ts -test/bake/framework-router.test.ts -test/bundler/bun-build-api.test.ts -test/bundler/bundler_banner.test.ts -test/bundler/bundler_browser.test.ts +test/js/node/test/parallel/test-set-http-max-http-headers.js +test/js/node/test/parallel/test-child-process-windows-hide.js test/bundler/bundler_bun.test.ts test/bundler/bundler_cjs2esm.test.ts -test/bundler/bundler_comments.test.ts -test/bundler/bundler_compile.test.ts -test/bundler/bundler_decorator_metadata.test.ts -test/bundler/bundler_defer.test.ts -test/bundler/bundler_drop.test.ts test/bundler/bundler_edgecase.test.ts -test/bundler/bundler_env.test.ts -test/bundler/bundler_footer.test.ts -test/bundler/bundler_html.test.ts -test/bundler/bundler_html_server.test.ts test/bundler/bundler_jsx.test.ts test/bundler/bundler_loader.test.ts test/bundler/bundler_minify.test.ts -test/bundler/bundler_minify_symbol_for.test.ts -test/bundler/bundler_naming.test.ts -test/bundler/bundler_npm.test.ts -test/bundler/bundler_plugin.test.ts -test/bundler/bundler_regressions.test.ts -test/bundler/bundler_splitting.test.ts -test/bundler/bundler_string.test.ts -test/bundler/cli.test.ts -test/bundler/css/css-modules.test.ts -test/bundler/css/wpt/background-computed.test.ts -test/bundler/css/wpt/color-computed-rgb.test.ts -test/bundler/css/wpt/color-computed.test.ts -test/bundler/css/wpt/relative_color_out_of_gamut.test.ts -test/bundler/esbuild/css.test.ts -test/bundler/esbuild/dce.test.ts -test/bundler/esbuild/default.test.ts -test/bundler/esbuild/extra.test.ts -test/bundler/esbuild/importstar.test.ts -test/bundler/esbuild/importstar_ts.test.ts -test/bundler/esbuild/loader.test.ts -test/bundler/esbuild/lower.test.ts -test/bundler/esbuild/packagejson.test.ts -test/bundler/esbuild/splitting.test.ts -test/bundler/esbuild/ts.test.ts -test/bundler/esbuild/tsconfig.test.ts -test/bundler/html-import-manifest.test.ts -test/bundler/transpiler/bun-pragma.test.ts -test/bundler/transpiler/decorator-metadata.test.ts -test/bundler/transpiler/decorators.test.ts -test/bundler/transpiler/export-default.test.js -test/bundler/transpiler/function-tostring-require.test.ts -test/bundler/transpiler/jsx-production.test.ts -test/bundler/transpiler/macro-test.test.ts -test/bundler/transpiler/preserve-use-strict-cjs.test.ts -test/bundler/transpiler/property.test.ts -test/bundler/transpiler/runtime-transpiler.test.ts -test/bundler/transpiler/template-literal.test.ts -test/bundler/transpiler/transpiler-stack-overflow.test.ts -test/bundler/transpiler/transpiler.test.js -test/bundler/transpiler_constant_fold_eqeq.test.ts -test/cli/bun.test.ts -test/cli/console-depth.test.ts -test/cli/env/bun-options.test.ts -test/cli/hot/hot.test.ts -test/cli/hot/watch.test.ts -test/cli/init/init.test.ts -test/cli/inspect/BunFrontendDevServer.test.ts -test/cli/inspect/HTTPServerAgent.test.ts -test/cli/inspect/inspect.test.ts -test/cli/install/architecture-match.test.ts -test/cli/install/bad-workspace.test.ts -test/cli/install/bun-add.test.ts -test/cli/install/bun-audit.test.ts -test/cli/install/bun-create.test.ts -test/cli/install/bun-info.test.ts -test/cli/install/bun-install-dep.test.ts -test/cli/install/bun-install-lifecycle-scripts.test.ts -test/cli/install/bun-install-patch.test.ts -test/cli/install/bun-install-pathname-trailing-slash.test.ts -test/cli/install/bun-install-proxy.test.ts -test/cli/install/bun-install-registry.test.ts -test/cli/install/bun-install-retry.test.ts -test/cli/install/bun-install.test.ts -test/cli/install/bun-link.test.ts -test/cli/install/bun-lock.test.ts -test/cli/install/bun-lockb.test.ts -test/cli/install/bun-pack.test.ts -test/cli/install/bun-patch.test.ts -test/cli/install/bun-pm-pkg.test.ts -test/cli/install/bun-pm-version.test.ts -test/cli/install/bun-pm-why.test.ts -test/cli/install/bun-pm.test.ts -test/cli/install/bun-publish.test.ts -test/cli/install/bun-remove.test.ts -test/cli/install/bun-repl.test.ts -test/cli/install/bun-run-bunfig.test.ts -test/cli/install/bun-update.test.ts -test/cli/install/bun-upgrade.test.ts -test/cli/install/bun-workspaces.test.ts -test/cli/install/bunx.test.ts -test/cli/install/catalogs.test.ts -test/cli/install/isolated-install.test.ts -test/cli/install/migration/complex-workspace.test.ts -test/cli/install/migration/migrate.test.ts -test/cli/install/npmrc.test.ts -test/cli/install/overrides.test.ts -test/cli/install/redacted-config-logs.test.ts -test/cli/install/semver.test.ts -test/cli/install/test-dev-peer-dependency-priority.test.ts -test/cli/run/as-node.test.ts -test/cli/run/commonjs-invalid.test.ts -test/cli/run/commonjs-no-export.test.ts -test/cli/run/empty-file.test.ts -test/cli/run/env.test.ts -test/cli/run/esm-defineProperty.test.ts -test/cli/run/filter-workspace.test.ts -test/cli/run/garbage-env.test.ts -test/cli/run/if-present.test.ts -test/cli/run/jsx-namespaced-attributes.test.ts -test/cli/run/jsx-symbol-collision.test.ts -test/cli/run/log-test.test.ts -test/cli/run/preload-test.test.js -test/cli/run/require-and-import-trailing.test.ts -test/cli/run/require-cache.test.ts -test/cli/run/run-autoinstall.test.ts -test/cli/run/run-cjs.test.ts -test/cli/run/run-eval.test.ts -test/cli/run/run-extensionless.test.ts -test/cli/run/run-file-on-fuse.test.ts -test/cli/run/run-process-env.test.ts -test/cli/run/run-quote.test.ts -test/cli/run/run-shell.test.ts -test/cli/run/run-unicode.test.ts -test/cli/run/run_command.test.ts -test/cli/run/self-reference.test.ts -test/cli/run/shell-keepalive.test.ts -test/cli/run/sql-preconnect.test.ts -test/cli/run/syntax.test.ts -test/cli/run/transpiler-cache.test.ts -test/cli/run/tsconfig-override.test.ts -test/cli/test/bun-test.test.ts -test/cli/test/coverage.test.ts -test/cli/test/expectations.test.ts -test/cli/test/test-timeout-behavior.test.ts -test/cli/update_interactive_formatting.test.ts -test/cli/watch/watch.test.ts -test/config/bunfig/preload.test.ts -test/integration/bun-types/bun-types.test.ts -test/integration/bun-types/fixture/serve-types.test.ts -test/integration/esbuild/esbuild.test.ts -test/integration/expo-app/expo.test.ts -test/integration/jsdom/jsdom.test.ts -test/integration/mysql2/mysql2.test.ts -test/integration/nest/nest_metadata.test.ts -test/integration/next-pages/test/dev-server-ssr-100.test.ts -test/integration/next-pages/test/dev-server.test.ts -test/integration/next-pages/test/next-build.test.ts -test/integration/sass/sass.test.ts -test/integration/sharp/sharp.test.ts -test/integration/svelte/client-side.test.ts -test/integration/svelte/server-side.test.ts -test/integration/typegraphql/src/ts_example.test.ts -test/integration/typegraphql/src/typegraphql.test.ts -test/integration/typegraphql/src/unsolvable.test.ts -test/integration/vite-build/vite-build.test.ts -test/internal/ban-words.test.ts -test/internal/bindgen.test.ts -test/internal/fifo.test.ts -test/internal/highlighter.test.ts -test/internal/powershell-escape.test.ts -test/js/bun/bun-object/deep-equals.spec.ts -test/js/bun/bun-object/deep-match.spec.ts -test/js/bun/bun-object/write.spec.ts -test/js/bun/console/bun-inspect-table.test.ts -test/js/bun/console/console-iterator.test.ts -test/js/bun/console/console-table.test.ts -test/js/bun/cookie/cookie-exotic-inputs.test.ts -test/js/bun/cookie/cookie-expires-validation.test.ts -test/js/bun/cookie/cookie-map.test.ts -test/js/bun/cookie/cookie-security-fuzz.test.ts -test/js/bun/cookie/cookie.test.ts -test/js/bun/crypto/cipheriv-decipheriv.test.ts -test/js/bun/crypto/wpt-webcrypto.generateKey.test.ts -test/js/bun/css/color.test.ts -test/js/bun/css/css-fuzz.test.ts -test/js/bun/css/css.test.ts -test/js/bun/css/doesnt_crash.test.ts -test/js/bun/dns/dns-prefetch.test.ts -test/js/bun/dns/resolve-dns.test.ts -test/js/bun/empty-file.test.ts -test/js/bun/ffi/addr32.test.ts -test/js/bun/ffi/cc.test.ts -test/js/bun/ffi/ffi.test.js -test/js/bun/glob/leak.test.ts -test/js/bun/glob/match.test.ts -test/js/bun/glob/proto.test.ts -test/js/bun/glob/scan.test.ts -test/js/bun/glob/stress.test.ts -test/js/bun/globals.test.js -test/js/bun/http/async-iterator-stream.test.ts -test/js/bun/http/bun-connect-x509.test.ts -test/js/bun/http/bun-listen-connect-args.test.ts -test/js/bun/http/bun-serve-args.test.ts -test/js/bun/http/bun-serve-body-json-async.test.ts -test/js/bun/http/bun-serve-cookies.test.ts -test/js/bun/http/bun-serve-file.test.ts -test/js/bun/http/bun-serve-headers.test.ts -test/js/bun/http/bun-serve-html-entry.test.ts -test/js/bun/http/bun-serve-html-manifest.test.ts -test/js/bun/http/bun-serve-html.test.ts -test/js/bun/http/bun-serve-propagate-errors.test.ts -test/js/bun/http/bun-serve-routes.test.ts -test/js/bun/http/bun-serve-ssl.test.ts -test/js/bun/http/bun-serve-static.test.ts -test/js/bun/http/bun-server.test.ts -test/js/bun/http/decodeURIComponentSIMD.test.ts -test/js/bun/http/fetch-file-upload.test.ts -test/js/bun/http/form-data-set-append.test.js -test/js/bun/http/getIfPropertyExists.test.ts -test/js/bun/http/hspec.test.ts -test/js/bun/http/http-server-chunking.test.ts -test/js/bun/http/http-spec.ts -test/js/bun/http/leaks-test.test.ts -test/js/bun/http/proxy.test.js -test/js/bun/http/proxy.test.ts -test/js/bun/http/req-url-leak.test.ts -test/js/bun/http/serve-body-leak.test.ts -test/js/bun/http/serve-direct-readable-stream.test.ts -test/js/bun/http/serve-listen.test.ts -test/js/bun/http/serve.test.ts -test/js/bun/import-attributes/import-attributes.test.ts -test/js/bun/ini/ini.test.ts -test/js/bun/io/bun-write-leak.test.ts -test/js/bun/io/bun-write.test.js -test/js/bun/jsc/bun-jsc.test.ts -test/js/bun/jsc/domjit.test.ts -test/js/bun/jsc/shadow.test.js -test/js/bun/net/socket.test.ts -test/js/bun/net/tcp-server.test.ts -test/js/bun/patch/patch.test.ts -test/js/bun/perf/static-initializers.test.ts -test/js/bun/perf_hooks/histogram.test.ts -test/js/bun/plugin/plugins.test.ts -test/js/bun/resolve/build-error.test.ts -test/js/bun/resolve/bun-lock.test.ts -test/js/bun/resolve/esModule-annotation.test.js -test/js/bun/resolve/esModule.test.ts -test/js/bun/resolve/import-custom-condition.test.ts -test/js/bun/resolve/import-empty.test.js -test/js/bun/resolve/import-meta-resolve.test.mjs -test/js/bun/resolve/import-meta.test.js -test/js/bun/resolve/import-query.test.ts -test/js/bun/resolve/jsonc.test.ts -test/js/bun/resolve/load-file-loader-a-lot.test.ts -test/js/bun/resolve/load-same-js-file-a-lot.test.ts -test/js/bun/resolve/non-english-import.test.js -test/js/bun/resolve/png/test-png-import.test.js -test/js/bun/resolve/require.test.ts -test/js/bun/resolve/resolve-bad-parent.test.mjs -test/js/bun/resolve/resolve-error.test.ts -test/js/bun/resolve/resolve-ts.test.ts -test/js/bun/resolve/resolve.test.ts -test/js/bun/resolve/toml/crash/toml-crash.test.ts -test/js/bun/resolve/toml/toml.test.js -test/js/bun/runtime-error.test.ts -test/js/bun/s3/s3-insecure.test.ts -test/js/bun/s3/s3-list-objects.test.ts -test/js/bun/s3/s3-storage-class.test.ts -test/js/bun/s3/s3.leak.test.ts -test/js/bun/s3/s3.test.ts -test/js/bun/shell/brace.test.ts -test/js/bun/shell/bunshell-default.test.ts -test/js/bun/shell/bunshell-file.test.ts -test/js/bun/shell/bunshell-instance.test.ts -test/js/bun/shell/bunshell.test.ts -test/js/bun/shell/commands/basename.test.ts -test/js/bun/shell/commands/cp.test.ts -test/js/bun/shell/commands/dirname.test.ts -test/js/bun/shell/commands/echo.test.ts -test/js/bun/shell/commands/exit.test.ts -test/js/bun/shell/commands/false.test.ts -test/js/bun/shell/commands/ls.test.ts -test/js/bun/shell/commands/mv.test.ts -test/js/bun/shell/commands/rm.test.ts -test/js/bun/shell/commands/seq.test.ts -test/js/bun/shell/commands/true.test.ts -test/js/bun/shell/commands/which.test.ts -test/js/bun/shell/commands/yes.test.ts -test/js/bun/shell/env.positionals.test.ts -test/js/bun/shell/epipe.test.ts -test/js/bun/shell/exec.test.ts -test/js/bun/shell/file-io.test.ts -test/js/bun/shell/lazy.test.ts -test/js/bun/shell/leak.test.ts -test/js/bun/shell/lex.test.ts -test/js/bun/shell/parse.test.ts -test/js/bun/shell/shell-hang.test.ts -test/js/bun/shell/shell-load.test.ts -test/js/bun/shell/shelloutput.test.ts -test/js/bun/shell/throw.test.ts -test/js/bun/shell/yield.test.ts -test/js/bun/spawn/bun-ipc-inherit.test.ts -test/js/bun/spawn/exit-code.test.ts -test/js/bun/spawn/job-object-bug.test.ts -test/js/bun/spawn/readablestream-helpers.test.ts -test/js/bun/spawn/spawn-empty-arrayBufferOrBlob.test.ts -test/js/bun/spawn/spawn-env.test.ts -test/js/bun/spawn/spawn-kill-signal.test.ts -test/js/bun/spawn/spawn-noread-leak.test.ts -test/js/bun/spawn/spawn-path.test.ts -test/js/bun/spawn/spawn-pipe-leak.test.ts -test/js/bun/spawn/spawn-signal.test.ts -test/js/bun/spawn/spawn-stdin-destroy.test.ts -test/js/bun/spawn/spawn-stdin-readable-stream-edge-cases.test.ts -test/js/bun/spawn/spawn-stdin-readable-stream-integration.test.ts -test/js/bun/spawn/spawn-stdin-readable-stream-sync.test.ts -test/js/bun/spawn/spawn-stdin-readable-stream.test.ts -test/js/bun/spawn/spawn-stream-serve.test.ts -test/js/bun/spawn/spawn-streaming-stdin.test.ts -test/js/bun/spawn/spawn-streaming-stdout.test.ts -test/js/bun/spawn/spawn-stress.test.ts -test/js/bun/spawn/spawn.ipc.bun-node.test.ts -test/js/bun/spawn/spawn.ipc.node-bun.test.ts -test/js/bun/spawn/spawn.ipc.test.ts -test/js/bun/spawn/spawn.test.ts -test/js/bun/spawn/spawnSync.test.ts -test/js/bun/spawn/spawn_waiter_thread.test.ts -test/js/bun/sqlite/column-types.test.js -test/js/bun/sqlite/sql-timezone.test.js -test/js/bun/sqlite/sqlite.test.js -test/js/bun/stream/direct-readable-stream.test.tsx -test/js/bun/symbols.test.ts -test/js/bun/test/bun-test.test.ts -test/js/bun/test/describe.test.ts -test/js/bun/test/done-async.test.ts -test/js/bun/test/expect-assertions.test.ts -test/js/bun/test/expect-extend-preload.test.ts -test/js/bun/test/expect-extend.test.js -test/js/bun/test/expect-label.test.ts -test/js/bun/test/expect-unreaachable.test.ts -test/js/bun/test/expect.test.js -test/js/bun/test/jest-each.test.ts -test/js/bun/test/jest-extended.test.js -test/js/bun/test/jest-hooks.test.ts -test/js/bun/test/mock-fn.test.js -test/js/bun/test/mock/6874/A.test.ts -test/js/bun/test/mock/6874/B.test.ts -test/js/bun/test/mock/6879/6879.test.ts -test/js/bun/test/mock/mock-module.test.ts -test/js/bun/test/nested-describes.test.ts -test/js/bun/test/preload-test.test.js -test/js/bun/test/snapshot-tests/bun-snapshots.test.ts -test/js/bun/test/snapshot-tests/existing-snapshots.test.ts -test/js/bun/test/snapshot-tests/new-snapshot.test.ts -test/js/bun/test/snapshot-tests/snapshots/more-snapshots/different-directory.test.ts -test/js/bun/test/snapshot-tests/snapshots/more.test.ts -test/js/bun/test/snapshot-tests/snapshots/moremore.test.ts -test/js/bun/test/snapshot-tests/snapshots/snapshot.test.ts -test/js/bun/test/stack.test.ts -test/js/bun/test/test-auto-import-jest-globals.test.js -test/js/bun/test/test-error-code-done-callback.test.ts -test/js/bun/test/test-failing.test.ts -test/js/bun/test/test-only.test.ts -test/js/bun/test/test-test.test.ts -test/js/bun/test/test-timers.test.ts -test/js/bun/udp/dgram.test.ts -test/js/bun/udp/udp_socket.test.ts -test/js/bun/util/BunObject.test.ts -test/js/bun/util/arraybuffersink.test.ts -test/js/bun/util/bun-cryptohasher.test.ts -test/js/bun/util/bun-file-exists.test.js -test/js/bun/util/bun-file-read.test.ts -test/js/bun/util/bun-file-windows.test.ts -test/js/bun/util/bun-file.test.ts -test/js/bun/util/bun-isMainThread.test.js -test/js/bun/util/concat.test.js -test/js/bun/util/cookie.test.js -test/js/bun/util/csrf.test.ts -test/js/bun/util/error-gc-test.test.js -test/js/bun/util/escapeHTML.test.js -test/js/bun/util/exotic-global-mutable-prototype.test.ts -test/js/bun/util/file-type.test.ts -test/js/bun/util/fileUrl.test.js -test/js/bun/util/filesink.test.ts -test/js/bun/util/filesystem_router.test.ts -test/js/bun/util/fuzzy-wuzzy.test.ts -test/js/bun/util/hash.test.js -test/js/bun/util/heap-snapshot.test.ts -test/js/bun/util/highlighter.test.ts -test/js/bun/util/index-of-line.test.ts -test/js/bun/util/inspect-error-leak.test.js -test/js/bun/util/inspect-error.test.js -test/js/bun/util/inspect.test.js -test/js/bun/util/mmap.test.js -test/js/bun/util/password.test.ts -test/js/bun/util/peek.test.ts -test/js/bun/util/randomUUIDv5.test.ts -test/js/bun/util/randomUUIDv7.test.ts -test/js/bun/util/readablestreamtoarraybuffer.test.ts -test/js/bun/util/reportError.test.ts -test/js/bun/util/sleep.test.ts -test/js/bun/util/sleepSync.test.ts -test/js/bun/util/stringWidth.test.ts -test/js/bun/util/text-loader.test.ts -test/js/bun/util/unsafe.test.js -test/js/bun/util/v8-heap-snapshot.test.ts -test/js/bun/util/which.test.ts -test/js/bun/util/zstd.test.ts -test/js/bun/wasm/wasi.test.js -test/js/bun/websocket/websocket-server.test.ts -test/js/deno/abort/abort-controller.test.ts -test/js/deno/crypto/random.test.ts -test/js/deno/crypto/webcrypto.test.ts -test/js/deno/encoding/encoding.test.ts -test/js/deno/event/custom-event.test.ts -test/js/deno/event/event-target.test.ts -test/js/deno/event/event.test.ts -test/js/deno/fetch/blob.test.ts -test/js/deno/fetch/body.test.ts -test/js/deno/fetch/headers.test.ts -test/js/deno/fetch/request.test.ts -test/js/deno/fetch/response.test.ts -test/js/deno/performance/performance.test.ts -test/js/deno/url/url.test.ts -test/js/deno/url/urlsearchparams.test.ts -test/js/deno/v8/error.test.ts -test/js/first_party/undici/undici-primordials.test.ts -test/js/first_party/undici/undici.test.ts -test/js/first_party/utf-8-validate/utf-8-validate.test.ts -test/js/first_party/ws/ws.test.ts -test/js/junit-reporter/junit.test.js -test/js/node/assert/assert-doesNotMatch.test.cjs -test/js/node/assert/assert-match.test.cjs -test/js/node/assert/assert-promise.test.ts -test/js/node/assert/assert-typedarray-deepequal.test.ts -test/js/node/assert/assert.spec.ts -test/js/node/assert/assert.test.cjs -test/js/node/async_hooks/AsyncLocalStorage-tracking.test.ts -test/js/node/async_hooks/AsyncLocalStorage.test.ts -test/js/node/async_hooks/EventEmitterAsyncResource.test.ts -test/js/node/async_hooks/async-local-storage-thenable.test.ts -test/js/node/async_hooks/async_hooks.node.test.ts -test/js/node/buffer-concat.test.ts -test/js/node/buffer-resolveObjectURL.test.ts -test/js/node/buffer.test.js -test/js/node/child_process/child-process-exec.test.ts -test/js/node/child_process/child-process-stdio.test.js -test/js/node/child_process/child_process-node.test.js -test/js/node/child_process/child_process.test.ts -test/js/node/child_process/child_process_ipc.test.js -test/js/node/child_process/child_process_ipc_large_disconnect.test.js -test/js/node/child_process/child_process_send_cb.test.js -test/js/node/cluster.test.ts -test/js/node/cluster/test-docs-http-server.ts -test/js/node/cluster/test-worker-no-exit-http.ts -test/js/node/console/console.test.ts -test/js/node/crypto/crypto-hmac-algorithm.test.ts -test/js/node/crypto/crypto-lazyhash.test.ts -test/js/node/crypto/crypto-oneshot.test.ts -test/js/node/crypto/crypto-random.test.ts -test/js/node/crypto/crypto-rsa.test.js -test/js/node/crypto/crypto.hmac.test.ts -test/js/node/crypto/crypto.key-objects.test.ts -test/js/node/crypto/crypto.test.ts -test/js/node/crypto/ecdh.test.ts -test/js/node/crypto/node-crypto.test.js -test/js/node/crypto/pbkdf2.test.ts -test/js/node/dgram/node-dgram.test.js -test/js/node/diagnostics_channel/diagnostics_channel.test.ts -test/js/node/dirname.test.js -test/js/node/dns/dns-lookup-keepalive.test.ts -test/js/node/dns/node-dns.test.js -test/js/node/domexception-node.test.js -test/js/node/env-windows.test.ts -test/js/node/events/event-emitter.test.ts -test/js/node/fs/abort-signal-leak-read-write-file.test.ts -test/js/node/fs/cp.test.ts -test/js/node/fs/dir.test.ts -test/js/node/fs/fs-leak.test.js -test/js/node/fs/fs-mkdir.test.ts -test/js/node/fs/fs-oom.test.ts -test/js/node/fs/fs-promises-writeFile-async-iterator.test.ts -test/js/node/fs/fs-stats-truncate.test.ts -test/js/node/fs/fs.test.ts -test/js/node/fs/glob.test.ts -test/js/node/fs/promises.test.js -test/js/node/harness.test.js -test/js/node/http/client-timeout-error.test.ts -test/js/node/http/node-fetch-cjs.test.js -test/js/node/http/node-fetch-primordials.test.ts -test/js/node/http/node-fetch.test.js -test/js/node/http/node-http-backpressure-max.test.ts -test/js/node/http/node-http-backpressure.test.ts -test/js/node/http/node-http-maxHeaderSize.test.ts -test/js/node/http/node-http-parser.test.ts -test/js/node/http/node-http-primoridals.test.ts -test/js/node/http/node-http-transfer-encoding.test.ts -test/js/node/http/node-http-uaf.test.ts -test/js/node/http/node-http.compress.leak.test.ts -test/js/node/http/node-http.test.ts -test/js/node/http/numeric-header.test.ts -test/js/node/http2/node-http2.test.js -test/js/node/inspector/inspector.test.ts -test/js/node/missing-module.test.js -test/js/node/module/module-sourcemap.test.js -test/js/node/module/node-module-module.test.js -test/js/node/module/require-extensions.test.ts -test/js/node/module/sourcemap.test.js -test/js/node/net/double-connect.test.ts -test/js/node/net/node-net-allowHalfOpen.test.js -test/js/node/net/node-net-server.test.ts -test/js/node/net/node-net.test.ts -test/js/node/net/server.spec.ts -test/js/node/net/socketaddress.spec.ts -test/js/node/no-addons.test.ts -test/js/node/nodettywrap.test.ts -test/js/node/os/os.test.js -test/js/node/path/15704.test.js -test/js/node/path/basename.test.js -test/js/node/path/browserify.test.js -test/js/node/path/dirname.test.js -test/js/node/path/extname.test.js -test/js/node/path/is-absolute.test.js -test/js/node/path/join.test.js -test/js/node/path/matches-glob.test.ts -test/js/node/path/normalize.test.js -test/js/node/path/parse-format.test.js -test/js/node/path/path.test.js -test/js/node/path/posix-exists.test.js -test/js/node/path/posix-relative-on-windows.test.js -test/js/node/path/relative.test.js -test/js/node/path/resolve.test.js -test/js/node/path/to-namespaced-path.test.js -test/js/node/path/win32-exists.test.js -test/js/node/path/zero-length-strings.test.js -test/js/node/perf_hooks/perf_hooks.test.ts -test/js/node/process-binding.test.ts -test/js/node/process/call-constructor.test.js -test/js/node/process/process-args.test.js -test/js/node/process/process-nexttick.test.js -test/js/node/process/process-on.test.ts -test/js/node/process/process-stdin.test.ts -test/js/node/process/process-stdio.test.ts -test/js/node/process/process.test.js -test/js/node/promise/reject-tostring.test.ts -test/js/node/readline/getStringWidth.test.ts -test/js/node/readline/pause_stdin_should_exit.test.ts -test/js/node/readline/readline.node.test.ts -test/js/node/readline/readline_never_unrefs.test.ts -test/js/node/readline/readline_promises.node.test.ts -test/js/node/readline/stdin_fell_asleep.test.ts -test/js/node/stream/node-stream-uint8array.test.ts -test/js/node/stream/node-stream.test.js -test/js/node/string-module.test.js -test/js/node/string_decoder/string-decoder.test.js -test/js/node/stubs.test.js -test/js/node/test_runner/node-test.test.ts -test/js/node/timers.promises/timers.promises.test.ts -test/js/node/timers/node-timers.test.ts -test/js/node/tls/fetch-tls-cert.test.ts -test/js/node/tls/node-tls-cert.test.ts -test/js/node/tls/node-tls-connect.test.ts -test/js/node/tls/node-tls-context.test.ts -test/js/node/tls/node-tls-create-secure-context-args.test.ts -test/js/node/tls/node-tls-internals.test.ts -test/js/node/tls/node-tls-namedpipes.test.ts -test/js/node/tls/node-tls-no-cipher-match-error.test.ts -test/js/node/tls/node-tls-rootcertificates-immutable.test.ts -test/js/node/tls/node-tls-server.test.ts -test/js/node/tls/node-tls-socket-allow-half-open-option.test.ts -test/js/node/tls/node-tls-upgrade.test.ts -test/js/node/tls/renegotiation.test.ts -test/js/node/tty.test.ts -test/js/node/url/pathToFileURL.test.ts -test/js/node/url/url-canParse-whatwg.test.js -test/js/node/url/url-domain-ascii-unicode.test.js -test/js/node/url/url-fileurltopath.test.js -test/js/node/url/url-format-invalid-input.test.js -test/js/node/url/url-format-whatwg.test.js -test/js/node/url/url-format.test.js -test/js/node/url/url-is-url.test.js -test/js/node/url/url-null-char.test.js -test/js/node/url/url-parse-format.test.js -test/js/node/url/url-parse-invalid-input.test.js -test/js/node/url/url-parse-ipv6.test.ts -test/js/node/url/url-parse-query.test.js -test/js/node/url/url-pathtofileurl.test.js -test/js/node/url/url-relative.test.js -test/js/node/url/url-revokeobjecturl.test.js -test/js/node/url/url.test.ts -test/js/node/util/bun-inspect.test.ts -test/js/node/util/custom-inspect.test.js -test/js/node/util/mime-api.test.ts -test/js/node/util/node-inspect-tests/import.test.mjs -test/js/node/util/node-inspect-tests/internal-inspect.test.js -test/js/node/util/node-inspect-tests/parallel/util-format.test.js -test/js/node/util/node-inspect-tests/parallel/util-inspect-getters-accessing-this.test.js -test/js/node/util/node-inspect-tests/parallel/util-inspect-long-running.test.mjs -test/js/node/util/node-inspect-tests/parallel/util-inspect-proxy.test.js -test/js/node/util/node-inspect-tests/parallel/util-inspect.test.js -test/js/node/util/parse_args/default-args.test.mjs -test/js/node/util/parse_args/parse-args.test.mjs -test/js/node/util/test-aborted.test.ts -test/js/node/util/test-util-types.test.js -test/js/node/util/util-callbackify.test.js -test/js/node/util/util-promisify.test.js -test/js/node/util/util.test.js -test/js/node/v8/capture-stack-trace.test.js -test/js/node/v8/v8-date-parser.test.js -test/js/node/vm/happy-dom-vm-16277.test.ts -test/js/node/vm/script-leak.test.ts -test/js/node/vm/sourcetextmodule-leak.test.ts -test/js/node/vm/vm-sourceUrl.test.ts -test/js/node/vm/vm.test.ts -test/js/node/watch/fs.watch.test.ts -test/js/node/watch/fs.watchFile.test.ts -test/js/node/worker_threads/15787.test.ts -test/js/node/worker_threads/worker_destruction.test.ts -test/js/node/worker_threads/worker_threads.test.ts -test/js/node/zlib/bytesWritten.test.ts -test/js/node/zlib/deflate-streaming.test.ts -test/js/node/zlib/leak.test.ts -test/js/node/zlib/zlib.kMaxLength.global.test.js -test/js/node/zlib/zlib.test.js -test/js/sql/local-sql.test.ts -test/js/sql/sql.test.ts -test/js/sql/tls-sql.test.ts -test/js/third_party/@azure/service-bus/azure-service-bus.test.ts -test/js/third_party/@duckdb/node-api/duckdb.test.ts -test/js/third_party/@electric-sql/pglite/pglite.test.ts -test/js/third_party/@fastify/websocket/fastity-test-websocket.test.js -test/js/third_party/@napi-rs/canvas/napi-rs-canvas.test.ts -test/js/third_party/astro/astro-post.test.js -test/js/third_party/body-parser/express-body-parser-test.test.ts -test/js/third_party/body-parser/express-bun-build-compile.test.ts -test/js/third_party/body-parser/express-memory-leak.test.ts -test/js/third_party/comlink/comlink.test.ts -test/js/third_party/duckdb/duckdb-basic-usage.test.ts -test/js/third_party/es-module-lexer/es-module-lexer.test.ts -test/js/third_party/esbuild/esbuild-child_process.test.ts -test/js/third_party/express/app.router.test.ts -test/js/third_party/express/express.json.test.ts -test/js/third_party/express/express.test.ts -test/js/third_party/express/express.text.test.ts -test/js/third_party/express/res.json.test.ts -test/js/third_party/express/res.location.test.ts -test/js/third_party/express/res.redirect.test.ts -test/js/third_party/express/res.send.test.ts -test/js/third_party/express/res.sendFile.test.ts -test/js/third_party/grpc-js/test-call-credentials.test.ts -test/js/third_party/grpc-js/test-call-propagation.test.ts -test/js/third_party/grpc-js/test-certificate-provider.test.ts -test/js/third_party/grpc-js/test-channel-credentials.test.ts -test/js/third_party/grpc-js/test-channelz.test.ts -test/js/third_party/grpc-js/test-client.test.ts -test/js/third_party/grpc-js/test-confg-parsing.test.ts -test/js/third_party/grpc-js/test-deadline.test.ts -test/js/third_party/grpc-js/test-duration.test.ts -test/js/third_party/grpc-js/test-end-to-end.test.ts -test/js/third_party/grpc-js/test-global-subchannel-pool.test.ts -test/js/third_party/grpc-js/test-idle-timer.test.ts -test/js/third_party/grpc-js/test-local-subchannel-pool.test.ts -test/js/third_party/grpc-js/test-logging.test.ts -test/js/third_party/grpc-js/test-metadata.test.ts -test/js/third_party/grpc-js/test-outlier-detection.test.ts -test/js/third_party/grpc-js/test-pick-first.test.ts -test/js/third_party/grpc-js/test-prototype-pollution.test.ts -test/js/third_party/grpc-js/test-resolver.test.ts -test/js/third_party/grpc-js/test-retry-config.test.ts -test/js/third_party/grpc-js/test-retry.test.ts -test/js/third_party/grpc-js/test-server-credentials.test.ts -test/js/third_party/grpc-js/test-server-deadlines.test.ts -test/js/third_party/grpc-js/test-server-errors.test.ts -test/js/third_party/grpc-js/test-server-interceptors.test.ts -test/js/third_party/grpc-js/test-server.test.ts -test/js/third_party/grpc-js/test-status-builder.test.ts -test/js/third_party/grpc-js/test-tonic.test.ts -test/js/third_party/grpc-js/test-uri-parser.test.ts -test/js/third_party/hono/hello-world-fixture.test.ts -test/js/third_party/hono/hello-world.test.ts -test/js/third_party/http2-wrapper/http2-wrapper.test.ts -test/js/third_party/jsonwebtoken/async_sign.test.js -test/js/third_party/jsonwebtoken/buffer.test.js -test/js/third_party/jsonwebtoken/claim-aud.test.js -test/js/third_party/jsonwebtoken/claim-exp.test.js -test/js/third_party/jsonwebtoken/claim-iat.test.js -test/js/third_party/jsonwebtoken/claim-iss.test.js -test/js/third_party/jsonwebtoken/claim-jti.test.js -test/js/third_party/jsonwebtoken/claim-nbf.test.js -test/js/third_party/jsonwebtoken/claim-private.test.js -test/js/third_party/jsonwebtoken/claim-sub.test.js -test/js/third_party/jsonwebtoken/decoding.test.js -test/js/third_party/jsonwebtoken/encoding.test.js -test/js/third_party/jsonwebtoken/expires_format.test.js -test/js/third_party/jsonwebtoken/header-kid.test.js -test/js/third_party/jsonwebtoken/invalid_exp.test.js -test/js/third_party/jsonwebtoken/issue_147.test.js -test/js/third_party/jsonwebtoken/issue_304.test.js -test/js/third_party/jsonwebtoken/issue_70.test.js -test/js/third_party/jsonwebtoken/jwt.asymmetric_signing.test.js -test/js/third_party/jsonwebtoken/jwt.hs.test.js -test/js/third_party/jsonwebtoken/jwt.malicious.test.js -test/js/third_party/jsonwebtoken/noTimestamp.test.js -test/js/third_party/jsonwebtoken/non_object_values.test.js -test/js/third_party/jsonwebtoken/option-complete.test.js -test/js/third_party/jsonwebtoken/option-maxAge.test.js -test/js/third_party/jsonwebtoken/option-nonce.test.js -test/js/third_party/jsonwebtoken/rsa-public-key.test.js -test/js/third_party/jsonwebtoken/schema.test.js -test/js/third_party/jsonwebtoken/set_headers.test.js -test/js/third_party/jsonwebtoken/undefined_secretOrPublickey.test.js -test/js/third_party/jsonwebtoken/validateAsymmetricKey.test.js -test/js/third_party/jsonwebtoken/verify.test.js -test/js/third_party/jsonwebtoken/wrong_alg.test.js -test/js/third_party/mongodb/mongodb.test.ts -test/js/third_party/msw/msw.test.ts -test/js/third_party/next-auth/next-auth.test.ts -test/js/third_party/nodemailer/nodemailer.test.ts -test/js/third_party/pg-gateway/pglite.test.ts -test/js/third_party/pg/pg.test.ts -test/js/third_party/pino/pino.test.js -test/js/third_party/pnpm/pnpm.test.ts -test/js/third_party/postgres/postgres.test.ts -test/js/third_party/prisma/prisma.test.ts -test/js/third_party/prompts/prompts.test.ts -test/js/third_party/remix/remix.test.ts -test/js/third_party/resvg/bbox.test.js -test/js/third_party/rollup-v4/rollup-v4.test.ts -test/js/third_party/socket.io/socket.io-close.test.ts -test/js/third_party/socket.io/socket.io-connection-state-recovery.test.ts -test/js/third_party/socket.io/socket.io-handshake.test.ts -test/js/third_party/socket.io/socket.io-messaging-many.test.ts -test/js/third_party/socket.io/socket.io-middleware.test.ts -test/js/third_party/socket.io/socket.io-namespaces.test.ts -test/js/third_party/socket.io/socket.io-server-attachment.test.ts -test/js/third_party/socket.io/socket.io-socket-middleware.test.ts -test/js/third_party/socket.io/socket.io-socket-timeout.test.ts -test/js/third_party/socket.io/socket.io-utility-methods.test.ts -test/js/third_party/socket.io/socket.io.test.ts -test/js/third_party/solc/solc.test.ts -test/js/third_party/st/st.test.ts -test/js/third_party/stripe/stripe.test.ts -test/js/third_party/svelte/svelte.test.ts -test/js/third_party/webpack/webpack.test.ts -test/js/third_party/yargs/yargs-cjs.test.js -test/js/valkey/integration/complex-operations.test.ts -test/js/valkey/reliability/connection-failures.test.ts -test/js/valkey/reliability/error-handling.test.ts -test/js/valkey/reliability/protocol-handling.test.ts -test/js/valkey/unit/basic-operations.test.ts -test/js/valkey/unit/buffer-operations.test.ts -test/js/valkey/unit/hash-operations.test.ts -test/js/valkey/unit/list-operations.test.ts -test/js/valkey/unit/ping.test.ts -test/js/valkey/unit/set-operations.test.ts -test/js/valkey/valkey.test.ts -test/js/web/abort/abort.test.ts -test/js/web/broadcastchannel/broadcast-channel.test.ts -test/js/web/console/console-log-utf16.test.ts -test/js/web/console/console-log.test.ts -test/js/web/console/console-recursive.test.ts -test/js/web/console/console-timeLog.test.ts -test/js/web/crypto/web-crypto.test.ts -test/js/web/encoding/encode-bad-chunks.test.ts -test/js/web/encoding/text-decoder-stream.test.ts -test/js/web/encoding/text-decoder.test.js -test/js/web/encoding/text-encoder-stream.test.ts -test/js/web/encoding/text-encoder.test.js -test/js/web/explicit-resource-management.test.ts -test/js/web/fetch/abort-signal-leak.test.ts -test/js/web/fetch/blob-cow.test.ts -test/js/web/fetch/blob-oom.test.ts -test/js/web/fetch/blob.test.ts -test/js/web/fetch/body-clone.test.ts -test/js/web/fetch/body-mixin-errors.test.ts -test/js/web/fetch/body-stream-excess.test.ts -test/js/web/fetch/body-stream.test.ts -test/js/web/fetch/body.test.ts -test/js/web/fetch/chunked-trailing.test.js -test/js/web/fetch/client-fetch.test.ts -test/js/web/fetch/content-length.test.js -test/js/web/fetch/cookies.test.ts -test/js/web/fetch/encoding.test.ts -test/js/web/fetch/exiting.test.ts -test/js/web/fetch/fetch-args.test.ts -test/js/web/fetch/fetch-connection-header.test.ts -test/js/web/fetch/fetch-gzip.test.ts -test/js/web/fetch/fetch-keepalive.test.ts -test/js/web/fetch/fetch-leak.test.ts -test/js/web/fetch/fetch-preconnect.test.ts -test/js/web/fetch/fetch-redirect.test.ts -test/js/web/fetch/fetch-tcp-stress.test.ts -test/js/web/fetch/fetch-url-after-redirect.test.ts -test/js/web/fetch/fetch.brotli.test.ts -test/js/web/fetch/fetch.stream.test.ts -test/js/web/fetch/fetch.test.ts -test/js/web/fetch/fetch.tls.test.ts -test/js/web/fetch/fetch.unix.test.ts -test/js/web/fetch/fetch_headers.test.js -test/js/web/fetch/headers-case.test.ts -test/js/web/fetch/headers.test.ts -test/js/web/fetch/headers.undici.test.ts -test/js/web/fetch/response.test.ts -test/js/web/fetch/stream-fast-path.test.ts -test/js/web/fetch/utf8-bom.test.ts -test/js/web/html/FormData.test.ts -test/js/web/html/URLSearchParams.test.ts -test/js/web/html/html-rewriter-doctype.test.ts -test/js/web/nationalized.test.ts -test/js/web/request/request-clone-leak.test.ts -test/js/web/request/request-method-getter.test.ts -test/js/web/request/request-subclass.test.ts -test/js/web/request/request.test.ts -test/js/web/streams/streams-leak.test.ts -test/js/web/streams/streams.test.js -test/js/web/timers/microtask.test.js -test/js/web/timers/performance-entries.test.ts -test/js/web/timers/performance.test.js -test/js/web/timers/setImmediate.test.js -test/js/web/timers/setImmediate2.test.ts -test/js/web/timers/setInterval.test.js -test/js/web/timers/setTimeout.test.js -test/js/web/url/url.test.ts -test/js/web/url/url.windows.test.js -test/js/web/util/atob.test.js -test/js/web/web-globals.test.js -test/js/web/websocket/autobahn.test.ts -test/js/web/websocket/error-event.test.ts -test/js/web/websocket/websocket-client-short-read.test.ts -test/js/web/websocket/websocket-client.test.ts -test/js/web/websocket/websocket-permessage-deflate-edge-cases.test.ts -test/js/web/websocket/websocket-permessage-deflate-simple.test.ts -test/js/web/websocket/websocket-permessage-deflate.test.ts -test/js/web/websocket/websocket-upgrade.test.ts -test/js/web/websocket/websocket.test.js -test/js/web/workers/message-channel.test.ts -test/js/web/workers/message-event.test.ts -test/js/web/workers/structured-clone.test.ts -test/js/web/workers/worker.test.ts -test/js/web/workers/worker_blob.test.ts -test/js/workerd/html-rewriter.test.js -test/napi/napi-value-ffi.test.ts -test/napi/napi.test.ts -test/napi/node-napi.test.ts -test/napi/uv.test.ts -test/napi/uv_stub.test.ts -test/package-json-lint.test.ts -test/regression/issue/00631.test.ts -test/regression/issue/012039.test.ts -test/regression/issue/012040.test.ts -test/regression/issue/012360.test.ts -test/regression/issue/013880.test.ts -test/regression/issue/014187.test.ts -test/regression/issue/01466.test.ts -test/regression/issue/014865.test.ts -test/regression/issue/015201.test.ts -test/regression/issue/02005.test.ts -test/regression/issue/02367.test.ts -test/regression/issue/02368.test.ts -test/regression/issue/02369.test.ts -test/regression/issue/02499/02499.test.ts -test/regression/issue/03091.test.ts -test/regression/issue/03216.test.ts -test/regression/issue/03830.test.ts -test/regression/issue/03844/03844.test.ts -test/regression/issue/04011.test.ts -test/regression/issue/04298/04298.test.ts -test/regression/issue/04893.test.ts -test/regression/issue/04947.test.js -test/regression/issue/06443.test.ts -test/regression/issue/06467.test.ts -test/regression/issue/06946/06946.test.ts -test/regression/issue/07001.test.ts -test/regression/issue/07261.test.ts -test/regression/issue/07263.test.ts -test/regression/issue/07324.test.ts -test/regression/issue/07397.test.ts -test/regression/issue/07500/07500.test.ts -test/regression/issue/07736.test.ts -test/regression/issue/07740.test.ts -test/regression/issue/07827.test.ts -test/regression/issue/07917/7917.test.ts -test/regression/issue/08040.test.ts -test/regression/issue/08093.test.ts -test/regression/issue/08095.test.ts -test/regression/issue/08757.test.ts -test/regression/issue/08794.test.ts -test/regression/issue/08964/08964.test.ts -test/regression/issue/08965/08965.test.ts -test/regression/issue/09041.test.ts -test/regression/issue/09279.test.ts -test/regression/issue/09340.test.ts -test/regression/issue/09469.test.ts -test/regression/issue/09555.test.ts -test/regression/issue/09559.test.ts -test/regression/issue/09563/09563.test.ts -test/regression/issue/09739.test.ts -test/regression/issue/09748.test.ts -test/regression/issue/09778.test.ts -test/regression/issue/10132.test.ts -test/regression/issue/10139.test.ts -test/regression/issue/10170.test.ts -test/regression/issue/10887.test.ts -test/regression/issue/11297/11297.test.ts -test/regression/issue/11664.test.ts -test/regression/issue/11677.test.ts -test/regression/issue/11806.test.ts -test/regression/issue/11866.test.ts -test/regression/issue/12034/12034.test.js -test/regression/issue/12650.test.js -test/regression/issue/12910/12910.test.ts -test/regression/issue/14029.test.ts -test/regression/issue/14477/14477.test.ts -test/regression/issue/14515.test.tsx -test/regression/issue/14945-lifecycle-script-crash.test.ts -test/regression/issue/14976/14976.test.ts -test/regression/issue/14982/14982.test.ts -test/regression/issue/15276.test.ts -test/regression/issue/15314.test.ts -test/regression/issue/15326.test.ts -test/regression/issue/16007.test.ts -test/regression/issue/16312.test.ts -test/regression/issue/16474.test.ts -test/regression/issue/16476/16476.test.ts -test/regression/issue/16702/16702.test.ts -test/regression/issue/17605.test.ts -test/regression/issue/17766.test.ts -test/regression/issue/18159/18159.test.ts -test/regression/issue/18239/18239.test.ts -test/regression/issue/18547.test.ts -test/regression/issue/18595.test.ts -test/regression/issue/19661.test.ts -test/regression/issue/19850/19850.test.ts -test/regression/issue/20144/20144.test.ts -test/regression/issue/20753.test.js -test/regression/issue/crypto-names.test.ts -test/regression/issue/css-system-color-contexts.test.ts -test/regression/issue/css-system-color-mix-crash.test.ts -test/regression/issue/ctrl-c.test.ts -test/regression/issue/pe-codesigning-integrity.test.ts -test/regression/issue/s3-signature-order.test.ts -test/regression/issue/s3-signature-performance.test.ts -test/regression/issue/test-21049.test.ts -test/regression/issue/update-interactive-formatting.test.ts -test/snippets/segfault-todo.test.js -test/v8/v8.test.ts -test/regression/issue/20321.test.ts -test/regression/issue/246-child_process_object_assign_compatibility.test.ts -test/js/node/test/parallel/test-http-server-keepalive-req-gc.js -test/js/web/websocket/websocket-subprotocol-strict.test.ts -test/regression/issue/jsx-template-string-crash.test.ts -test/js/web/websocket/websocket-blob.test.ts -test/js/node/process/stdin/stdin-fixtures.test.ts -test/js/bun/test/printing/diffexample.test.ts -test/regression/issue/14338.test.ts -test/js/bun/shell/pipeline_stack.test.ts -test/regression/issue/comma-operator-this-binding.test.ts -test/regression/issue/12548.test.ts -test/cli/install/bun-run.test.ts -test/cli/test/test-filter-lifecycle-snapshot.test.ts -test/cli/test/claudecode-flag.test.ts -test/cli/install/bun-pm-scan.test.ts -test/bundler/bun-build-compile-wasm.test.ts -test/cli/install/bun-run-dir.test.ts -test/bake/dev/production.test.ts -test/bake/dev/incremental-graph-edge-deletion.test.ts -test/bake/dev/import-meta-inline.test.ts -test/cli/update_interactive_snapshots.test.ts -test/napi/node-napi-tests/test/js-native-api/6_object_wrap/do.test.ts -test/regression/issue/tty-reopen-after-stdin-eof.test.ts -test/regression/issue/tty-readstream-ref-unref.test.ts -test/regression/issue/tui-app-tty-pattern.test.ts -test/js/web/websocket/websocket-custom-headers.test.ts vendor/elysia/test/a.test.ts From c8c189bdeb041c2de1a3d16310ce2bc7918f500a Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Tue, 16 Sep 2025 02:16:01 -0700 Subject: [PATCH 42/60] more --- src/bun.js/api/JSTranspiler.zig | 2 +- src/cli/pack_command.zig | 4 ++-- test/leaksan.supp | 2 ++ test/no-validate-leaksan.txt | 23 +++++++++++++++++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/bun.js/api/JSTranspiler.zig b/src/bun.js/api/JSTranspiler.zig index bafedf08881..395daf0cda0 100644 --- a/src/bun.js/api/JSTranspiler.zig +++ b/src/bun.js/api/JSTranspiler.zig @@ -1014,7 +1014,7 @@ fn namedExportsToJS(global: *JSGlobalObject, named_exports: *JSAst.Ast.NamedExpo }); var i: usize = 0; while (named_exports_iter.next()) |entry| { - names[i] = bun.String.cloneUTF8(entry.key_ptr.*); + names[i] = bun.String.fromBytes(entry.key_ptr.*); i += 1; } return bun.String.toJSArray(global, names); diff --git a/src/cli/pack_command.zig b/src/cli/pack_command.zig index 383a5cd8e23..d8b2f139d44 100644 --- a/src/cli/pack_command.zig +++ b/src/cli/pack_command.zig @@ -2527,7 +2527,7 @@ pub const bindings = struct { sha512.final(&sha512_digest); var base64_buf: [std.base64.standard.Encoder.calcSize(sha.SHA512.digest)]u8 = undefined; const encode_count = bun.simdutf.base64.encode(&sha512_digest, &base64_buf, false); - const integrity_str = String.cloneUTF8(base64_buf[0..encode_count]); + const integrity_value = try String.createUTF8ForJS(global, base64_buf[0..encode_count]); const EntryInfo = struct { pathname: String, @@ -2658,7 +2658,7 @@ pub const bindings = struct { result.put(global, "entries", entries); result.put(global, "size", JSValue.jsNumber(tarball.len)); result.put(global, "shasum", shasum_str.toJS(global)); - result.put(global, "integrity", integrity_str.toJS(global)); + result.put(global, "integrity", integrity_value); return result; } diff --git a/test/leaksan.supp b/test/leaksan.supp index 22fc70dd699..7609f16a30f 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -42,5 +42,7 @@ leak:bun.js.webcore.Blob.findOrCreateFileFromPath__anon leak:BunString::toWTFString(BunString::ZeroCopyTag) leak:bun.js.node.node_fs_binding.Bindings(.mkdtemp).runSync leak:bun.js.ModuleLoader.fetchBuiltinModule +leak:boringssl.checkX509ServerIdentity +leak:cli.pack_command.bindings.jsReadTarball leak:fromErrorInstance diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index f30655485fd..abc53f37f2f 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -76,6 +76,20 @@ test/bake/dev/sourcemap.test.ts test/bake/dev/ssg-pages-router.test.ts test/bundler/bundler_compile.test.ts test/bundler/bundler_plugin.test.ts +test/bundler/transpiler/bun-pragma.test.ts +test/bundler/transpiler/runtime-transpiler.test.ts +test/cli/hot/hot.test.ts +test/cli/install/bun-add.test.ts +test/cli/install/bun-create.test.ts +test/cli/install/bun-install-lifecycle-scripts.test.ts +test/cli/install/bun-install-patch.test.ts +test/cli/install/bun-install-proxy.test.ts +test/cli/install/bun-install-registry.test.ts +test/cli/install/bun-install-retry.test.ts +test/cli/install/bun-install.test.ts +test/cli/install/bun-lock.test.ts +test/cli/install/bun-lockb.test.ts +test/cli/install/bun-patch.test.ts # crash for reasons not related to LSAN @@ -126,6 +140,15 @@ test/bundler/bundler_edgecase.test.ts test/bundler/bundler_jsx.test.ts test/bundler/bundler_loader.test.ts test/bundler/bundler_minify.test.ts +test/bundler/esbuild/dce.test.ts +test/bundler/esbuild/default.test.ts +test/bundler/esbuild/extra.test.ts +test/bundler/esbuild/loader.test.ts +test/bundler/esbuild/splitting.test.ts +test/bundler/html-import-manifest.test.ts +test/cli/inspect/BunFrontendDevServer.test.ts +test/cli/inspect/HTTPServerAgent.test.ts +test/cli/inspect/inspect.test.ts vendor/elysia/test/a.test.ts From cdca5da261c72072ca6604cc19758cbb3a552ba4 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Tue, 16 Sep 2025 21:18:43 -0700 Subject: [PATCH 43/60] more --- src/bun.js/bindings/ErrorStackTrace.cpp | 4 +- src/bun.js/node/node_fs.zig | 6 +-- test/leaksan.supp | 31 +++++++++++ test/no-validate-leaksan.txt | 69 +++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 5 deletions(-) diff --git a/src/bun.js/bindings/ErrorStackTrace.cpp b/src/bun.js/bindings/ErrorStackTrace.cpp index 75ac0f70e90..4e518caa8c4 100644 --- a/src/bun.js/bindings/ErrorStackTrace.cpp +++ b/src/bun.js/bindings/ErrorStackTrace.cpp @@ -543,11 +543,11 @@ String sourceURL(JSC::CodeBlock* codeBlock) String sourceURL(JSC::VM& vm, const JSC::StackFrame& frame) { if (frame.isWasmFrame()) { - return "[wasm code]"_s; + return MAKE_STATIC_STRING_IMPL("[wasm code]"); } if (!frame.hasLineAndColumnInfo()) [[unlikely]] { - return "[native code]"_s; + return MAKE_STATIC_STRING_IMPL("[native code]"); } return sourceURL(frame.codeBlock()); diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index 87181faf01a..ffd20551e95 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -3193,7 +3193,7 @@ const Return = struct { pub const Link = void; pub const Lstat = StatOrNotFound; pub const Mkdir = StringOrUndefined; - pub const Mkdtemp = jsc.JSValue; + pub const Mkdtemp = jsc.ZigString; pub const Open = FD; pub const WriteFile = void; pub const Readv = Read; @@ -4128,12 +4128,12 @@ pub const NodeFS = struct { .path = prefix_buf[0 .. len + 6], } }; } - return .initResult(bun.String.createUTF8ForJS(this.vm.?.global, bun.sliceTo(req.path, 0)) catch bun.outOfMemory()); + return .initResult(bun.handleOom(jsc.ZigString.dupeForJS(bun.sliceTo(req.path, 0), bun.default_allocator))); } const rc = c.mkdtemp(prefix_buf); if (rc) |ptr| { - return .initResult(bun.String.createUTF8ForJS(this.vm.?.global, bun.sliceTo(ptr, 0)) catch bun.outOfMemory()); + return .initResult(bun.handleOom(jsc.ZigString.dupeForJS(bun.sliceTo(ptr, 0), bun.default_allocator))); } // c.getErrno(rc) returns SUCCESS if rc is -1 so we call std.c._errno() directly diff --git a/test/leaksan.supp b/test/leaksan.supp index 7609f16a30f..35a62cc5d57 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -44,5 +44,36 @@ leak:bun.js.node.node_fs_binding.Bindings(.mkdtemp).runSync leak:bun.js.ModuleLoader.fetchBuiltinModule leak:boringssl.checkX509ServerIdentity leak:cli.pack_command.bindings.jsReadTarball +leak:ZigString__toErrorInstance +leak:JSC::moduleLoaderModuleDeclarationInstantiation +leak:JSC::arrayProtoFuncSort +leak:bindgen_Fmt_jsFmtString +leak:bun.js.api.bun.dns.GetAddrInfoRequest.run +leak:deps.tcc.State.init__anon +leak:dynamic_library.DlDynLib.open +leak:Zig::ImportMetaObject::finishCreation +leak:uws_add_server_name_with_options +leak:bun.js.webcore.Body.Value.fromJS +leak:sys.Error.toSystemError +leak:bun.js.webcore.Blob.getNameString +leak:JSC::callIntlDateTimeFormat +leak:functionRunProfiler +leak:JSC::JSModuleLoader::evaluateNonVirtual +leak:patch.PatchFile.apply +leak:bun.js.ModuleLoader.RuntimeTranspilerStore.TranspilerJob.runFromJSThread +leak:bun.js.webcore.blob.Store.initS3WithReferencedCredentials +leak:s3.list_objects.S3ListObjectsV2Result.toJS +leak:bun.js.webcore.S3Client.S3Client.write +leak:s3.list_objects.getListObjectsOptionsFromJS +leak:bun.js.node.node_fs.NodeFS.realpathInner +leak:sys.Error.toShellSystemError +leak:lazyLoadSQLite +leak:JSC::intlAvailableLocales +leak:getaddrinfo +leak:bun.js.api.filesystem_router.FileSystemRouter.constructor +leak:JSC::intlSegmenterAvailableLocales +leak:URL__getHref +leak:bun.js.api.bun.dns.Resolver.globalLookupService +leak:jsHTTPParser_execute leak:fromErrorInstance diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index abc53f37f2f..c819e3d6496 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -90,6 +90,43 @@ test/cli/install/bun-install.test.ts test/cli/install/bun-lock.test.ts test/cli/install/bun-lockb.test.ts test/cli/install/bun-patch.test.ts +test/cli/install/bun-pm.test.ts +test/cli/install/bun-repl.test.ts +test/cli/install/bun-update.test.ts +test/cli/install/bun-workspaces.test.ts +test/cli/install/bunx.test.ts +test/cli/install/isolated-install.test.ts +test/cli/install/migration/complex-workspace.test.ts +test/cli/install/npmrc.test.ts +test/cli/install/overrides.test.ts +test/cli/install/test-dev-peer-dependency-priority.test.ts +test/cli/run/commonjs-invalid.test.ts +test/cli/run/preload-test.test.js +test/cli/run/require-cache.test.ts +test/cli/update_interactive_formatting.test.ts +test/integration/esbuild/esbuild.test.ts +test/integration/expo-app/expo.test.ts +test/integration/next-pages/test/dev-server-ssr-100.test.ts +test/integration/next-pages/test/dev-server.test.ts +test/integration/next-pages/test/next-build.test.ts +test/integration/vite-build/vite-build.test.ts +test/js/bun/css/css-fuzz.test.ts +test/js/bun/ffi/cc.test.ts +test/js/bun/http/bun-serve-html-manifest.test.ts +test/js/bun/http/bun-server.test.ts +test/js/bun/import-attributes/import-attributes.test.ts +test/js/bun/resolve/import-custom-condition.test.ts +test/js/bun/s3/s3.leak.test.ts +test/js/bun/shell/bunshell.test.ts +test/js/bun/shell/commands/ls.test.ts +test/js/bun/shell/leak.test.ts +test/js/bun/shell/lex.test.ts +test/js/bun/spawn/spawn-stdin-destroy.test.ts +test/js/bun/test/snapshot-tests/snapshots/snapshot.test.ts +test/js/bun/test/test-only.test.ts +test/js/node/http/node-http-maxHeaderSize.test.ts +test/js/node/http/node-http.test.ts +test/js/node/http2/node-http2.test.js # crash for reasons not related to LSAN @@ -103,6 +140,8 @@ test/bake/dev/html.test.ts test/bake/dev/plugins.test.ts test/bake/dev/stress.test.ts test/bake/dev/vfile.test.ts +test/js/bun/http/serve.test.ts +test/js/bun/resolve/import-meta.test.js # ASSERTION FAILED: m_normalWorld->hasOneRef() @@ -149,6 +188,36 @@ test/bundler/html-import-manifest.test.ts test/cli/inspect/BunFrontendDevServer.test.ts test/cli/inspect/HTTPServerAgent.test.ts test/cli/inspect/inspect.test.ts +test/cli/install/bun-publish.test.ts +test/cli/install/catalogs.test.ts +test/cli/run/self-reference.test.ts +test/cli/watch/watch.test.ts +test/js/bun/console/console-iterator.test.ts +test/js/bun/http/async-iterator-stream.test.ts +test/js/bun/http/bun-serve-body-json-async.test.ts +test/js/bun/http/bun-serve-html.test.ts +test/js/bun/resolve/resolve.test.ts +test/js/bun/s3/s3-storage-class.test.ts +test/js/bun/s3/s3.test.ts +test/js/bun/shell/env.positionals.test.ts +test/js/bun/shell/shell-hang.test.ts +test/js/bun/spawn/bun-ipc-inherit.test.ts +test/js/bun/spawn/spawn-stdin-readable-stream-integration.test.ts +test/js/bun/spawn/spawn.ipc.node-bun.test.ts +test/js/bun/spawn/spawn.ipc.test.ts +test/js/bun/udp/dgram.test.ts +test/js/bun/util/BunObject.test.ts +test/js/bun/util/fuzzy-wuzzy.test.ts +test/js/bun/util/heap-snapshot.test.ts +test/js/bun/util/inspect.test.js +test/js/bun/util/reportError.test.ts +test/js/bun/websocket/websocket-server.test.ts +test/js/first_party/ws/ws.test.ts +test/js/node/child_process/child_process-node.test.js +test/js/node/child_process/child_process.test.ts +test/js/node/crypto/crypto.test.ts +test/js/node/dgram/node-dgram.test.js +test/js/node/fs/abort-signal-leak-read-write-file.test.ts vendor/elysia/test/a.test.ts From 168765a4b248d4e41ed15c8c1166f7533f5158fd Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 01:27:24 -0700 Subject: [PATCH 44/60] more --- .vscode/launch.json | 12 ++--- test/js/web/websocket/autobahn.test.ts | 1 + test/leaksan.supp | 31 +++++++++++++ test/no-validate-leaksan.txt | 61 ++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 6 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index fd352201ecf..5b4e6fee236 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -25,9 +25,9 @@ // "BUN_JSC_validateExceptionChecks": "1", // "BUN_JSC_dumpSimulatedThrows": "1", // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", - "BUN_DESTRUCT_VM_ON_EXIT": "1", - "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", - "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=0:suppressions=${workspaceFolder}/test/leaksan.supp", + // "BUN_DESTRUCT_VM_ON_EXIT": "1", + // "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", + // "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=1:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", "sourceMap": { @@ -68,9 +68,9 @@ // "BUN_JSC_validateExceptionChecks": "1", // "BUN_JSC_dumpSimulatedThrows": "1", // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", - "BUN_DESTRUCT_VM_ON_EXIT": "1", - "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", - "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=0:suppressions=${workspaceFolder}/test/leaksan.supp", + // "BUN_DESTRUCT_VM_ON_EXIT": "1", + // "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", + // "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=1:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", "sourceMap": { diff --git a/test/js/web/websocket/autobahn.test.ts b/test/js/web/websocket/autobahn.test.ts index bff979bdefb..f5fb32b2c38 100644 --- a/test/js/web/websocket/autobahn.test.ts +++ b/test/js/web/websocket/autobahn.test.ts @@ -175,3 +175,4 @@ if (isDockerEnabled() && (await load())) { } else { it.todo("Autobahn WebSocket not detected"); } +// last test is 13.7.18 diff --git a/test/leaksan.supp b/test/leaksan.supp index 35a62cc5d57..d277476bfcd 100644 --- a/test/leaksan.supp +++ b/test/leaksan.supp @@ -75,5 +75,36 @@ leak:JSC::intlSegmenterAvailableLocales leak:URL__getHref leak:bun.js.api.bun.dns.Resolver.globalLookupService leak:jsHTTPParser_execute +leak:Resolver__nodeModulePathsJSValue +leak:URL__host +leak:bun.js.node.node_os.version +leak:bun.js.node.node_os.release +leak:JSC::stringProtoFuncReplaceUsingRegExp +leak:WebCore::parseTypeAndSubtype +leak:bun.js.node.util.parse_args.parseArgs +leak:JSC::IntlDateTimeFormat::initializeDateTimeFormat +leak:WebCore__DOMURL__fileSystemPath +leak:bun.js.node.node_fs_watcher.FSWatcher.Arguments.fromJS +leak:WebWorker__updatePtr +leak:bun.js.node.zlib.NativeZlib.Context.init +leak:sql.postgres.PostgresSQLStatement.structure +leak:sql.postgres.DataCell.parseArray__anon +leak:sql.postgres.protocol.FieldMessage.FieldMessage.init +leak:JSC::intlCollatorAvailableLocales +leak:Bun__canonicalizeIP +leak:dlopen +leak:Bun::evaluateCommonJSModuleOnce +leak:fse_run_loop +leak:Zig::NapiClass_ConstructorFunction +leak:bun.js.webcore.fetch.FetchTasklet.toResponse +leak:JSC::jsonProtoFuncStringify +leak:deps.lol-html.HTMLString.toString +leak:libarchive.libarchive-bindings.Archive.readNew +leak:Zig::SourceProvider::create leak:fromErrorInstance + +# JSC_TO_STRING_TAG_WITHOUT_TRANSITION +leak:TLSSocket__create +leak:WebCore::JSReadableStreamDefaultReaderPrototype::finishCreation +leak:WebCore::JSReadableStreamDefaultControllerPrototype::finishCreation diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index c819e3d6496..e54890f24d6 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -56,6 +56,8 @@ test/js/node/test/parallel/test-worker-unref-from-message-during-exit.js test/js/node/test/parallel/test-worker-workerdata-sharedarraybuffer.js test/js/node/test/parallel/test-worker.js test/js/node/test/parallel/test-worker.mjs +test/js/node/worker_threads/worker_destruction.test.ts +test/js/web/broadcastchannel/broadcast-channel.test.ts # error exit root cause unclear @@ -127,6 +129,21 @@ test/js/bun/test/test-only.test.ts test/js/node/http/node-http-maxHeaderSize.test.ts test/js/node/http/node-http.test.ts test/js/node/http2/node-http2.test.js +test/js/node/no-addons.test.ts +test/js/node/readline/readline_never_unrefs.test.ts +test/js/third_party/@napi-rs/canvas/napi-rs-canvas.test.ts +test/js/third_party/next-auth/next-auth.test.ts +test/js/third_party/pnpm/pnpm.test.ts +test/js/web/console/console-log.test.ts +test/js/web/fetch/fetch-leak.test.ts +test/js/web/fetch/fetch.tls.test.ts +test/regression/issue/09559.test.ts +test/regression/issue/14477/14477.test.ts +test/js/node/process/stdin/stdin-fixtures.test.ts +test/cli/install/bun-run.test.ts +test/bake/dev/import-meta-inline.test.ts +test/integration/sharp/sharp.test.ts +test/cli/test/bun-test.test.ts # crash for reasons not related to LSAN @@ -142,6 +159,10 @@ test/bake/dev/stress.test.ts test/bake/dev/vfile.test.ts test/js/bun/http/serve.test.ts test/js/bun/resolve/import-meta.test.js +test/js/node/worker_threads/worker_threads.test.ts +test/js/third_party/@duckdb/node-api/duckdb.test.ts +test/js/third_party/body-parser/express-bun-build-compile.test.ts +test/js/third_party/duckdb/duckdb-basic-usage.test.ts # ASSERTION FAILED: m_normalWorld->hasOneRef() @@ -152,6 +173,18 @@ test/js/node/test/parallel/test-crypto-prime.js test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-4.js test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-2.js test/js/node/test/parallel/test-async-hooks-worker-asyncfn-terminate-3.js +test/js/third_party/@fastify/websocket/fastity-test-websocket.test.js +test/js/third_party/esbuild/esbuild-child_process.test.ts +test/js/third_party/pino/pino.test.js +test/js/third_party/socket.io/socket.io-close.test.ts +test/js/web/websocket/websocket-permessage-deflate-edge-cases.test.ts +test/js/web/websocket/websocket-permessage-deflate-simple.test.ts +test/js/web/websocket/websocket-upgrade.test.ts +test/js/web/workers/message-channel.test.ts +test/js/web/workers/worker_blob.test.ts +test/regression/issue/012040.test.ts +test/js/web/websocket/websocket-blob.test.ts +test/regression/issue/14338.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit @@ -218,6 +251,34 @@ test/js/node/child_process/child_process.test.ts test/js/node/crypto/crypto.test.ts test/js/node/dgram/node-dgram.test.js test/js/node/fs/abort-signal-leak-read-write-file.test.ts +test/js/node/process/process-args.test.js +test/js/node/process/process-on.test.ts +test/js/node/process/process.test.js +test/js/node/tls/node-tls-upgrade.test.ts +test/js/node/tls/renegotiation.test.ts +test/js/node/util/node-inspect-tests/parallel/util-inspect.test.js +test/js/node/v8/capture-stack-trace.test.js +test/js/node/vm/vm.test.ts +test/js/third_party/astro/astro-post.test.js +test/js/third_party/grpc-js/test-tonic.test.ts +test/js/web/fetch/fetch.test.ts +test/js/web/timers/setImmediate.test.js +test/js/web/websocket/autobahn.test.ts +test/js/web/websocket/websocket-client.test.ts +test/js/web/websocket/websocket.test.js +test/js/web/workers/worker.test.ts +test/regression/issue/04298/04298.test.ts +test/regression/issue/08095.test.ts +test/regression/issue/11664.test.ts +test/regression/issue/20144/20144.test.ts +test/regression/issue/update-interactive-formatting.test.ts +test/v8/v8.test.ts +test/regression/issue/246-child_process_object_assign_compatibility.test.ts +test/cli/install/bun-pm-scan.test.ts +test/bake/dev/production.test.ts +test/bake/dev/incremental-graph-edge-deletion.test.ts +test/cli/update_interactive_snapshots.test.ts +test/js/web/websocket/websocket-custom-headers.test.ts vendor/elysia/test/a.test.ts From 1f71f6232febe93512ccad79879ad054c6cf9fd5 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 12:49:55 -0700 Subject: [PATCH 45/60] better group these --- test/no-validate-leaksan.txt | 89 +++++++++++++++++++++++------------- 1 file changed, 56 insertions(+), 33 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index e54890f24d6..f07377a857a 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -185,9 +185,11 @@ test/js/web/workers/worker_blob.test.ts test/regression/issue/012040.test.ts test/js/web/websocket/websocket-blob.test.ts test/regression/issue/14338.test.ts +test/js/bun/util/heap-snapshot.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit +# Bun::JSNodeHTTPServerSocket::clearSocketData test/js/node/test/parallel/test-http-server-keep-alive-max-requests-null.js test/js/node/test/parallel/test-http-keep-alive-pipeline-max-requests.js test/js/node/test/parallel/test-https-connecting-to-http.js @@ -204,20 +206,12 @@ test/js/node/test/parallel/test-http-server-reject-chunked-with-content-length.j test/js/node/test/parallel/test-http-chunked-smuggling.js test/js/node/test/parallel/test-http-double-content-length.js test/js/node/test/parallel/test-http-blank-header.js + +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +# bun.assert(!this.hasPendingActivity() or jsc.VirtualMachine.get().isShuttingDown()); +# @call(bun.callmod_inline, Subprocess.finalize, .{thisValue}); test/js/node/test/parallel/test-set-http-max-http-headers.js test/js/node/test/parallel/test-child-process-windows-hide.js -test/bundler/bundler_bun.test.ts -test/bundler/bundler_cjs2esm.test.ts -test/bundler/bundler_edgecase.test.ts -test/bundler/bundler_jsx.test.ts -test/bundler/bundler_loader.test.ts -test/bundler/bundler_minify.test.ts -test/bundler/esbuild/dce.test.ts -test/bundler/esbuild/default.test.ts -test/bundler/esbuild/extra.test.ts -test/bundler/esbuild/loader.test.ts -test/bundler/esbuild/splitting.test.ts -test/bundler/html-import-manifest.test.ts test/cli/inspect/BunFrontendDevServer.test.ts test/cli/inspect/HTTPServerAgent.test.ts test/cli/inspect/inspect.test.ts @@ -229,57 +223,86 @@ test/js/bun/console/console-iterator.test.ts test/js/bun/http/async-iterator-stream.test.ts test/js/bun/http/bun-serve-body-json-async.test.ts test/js/bun/http/bun-serve-html.test.ts -test/js/bun/resolve/resolve.test.ts -test/js/bun/s3/s3-storage-class.test.ts -test/js/bun/s3/s3.test.ts test/js/bun/shell/env.positionals.test.ts -test/js/bun/shell/shell-hang.test.ts test/js/bun/spawn/bun-ipc-inherit.test.ts test/js/bun/spawn/spawn-stdin-readable-stream-integration.test.ts test/js/bun/spawn/spawn.ipc.node-bun.test.ts test/js/bun/spawn/spawn.ipc.test.ts test/js/bun/udp/dgram.test.ts -test/js/bun/util/BunObject.test.ts -test/js/bun/util/fuzzy-wuzzy.test.ts -test/js/bun/util/heap-snapshot.test.ts -test/js/bun/util/inspect.test.js -test/js/bun/util/reportError.test.ts test/js/bun/websocket/websocket-server.test.ts test/js/first_party/ws/ws.test.ts test/js/node/child_process/child_process-node.test.js test/js/node/child_process/child_process.test.ts test/js/node/crypto/crypto.test.ts test/js/node/dgram/node-dgram.test.js -test/js/node/fs/abort-signal-leak-read-write-file.test.ts test/js/node/process/process-args.test.js -test/js/node/process/process-on.test.ts -test/js/node/process/process.test.js -test/js/node/tls/node-tls-upgrade.test.ts test/js/node/tls/renegotiation.test.ts -test/js/node/util/node-inspect-tests/parallel/util-inspect.test.js -test/js/node/v8/capture-stack-trace.test.js -test/js/node/vm/vm.test.ts test/js/third_party/astro/astro-post.test.js test/js/third_party/grpc-js/test-tonic.test.ts test/js/web/fetch/fetch.test.ts test/js/web/timers/setImmediate.test.js test/js/web/websocket/autobahn.test.ts test/js/web/websocket/websocket-client.test.ts -test/js/web/websocket/websocket.test.js -test/js/web/workers/worker.test.ts test/regression/issue/04298/04298.test.ts test/regression/issue/08095.test.ts -test/regression/issue/11664.test.ts test/regression/issue/20144/20144.test.ts test/regression/issue/update-interactive-formatting.test.ts -test/v8/v8.test.ts test/regression/issue/246-child_process_object_assign_compatibility.test.ts test/cli/install/bun-pm-scan.test.ts -test/bake/dev/production.test.ts test/bake/dev/incremental-graph-edge-deletion.test.ts test/cli/update_interactive_snapshots.test.ts test/js/web/websocket/websocket-custom-headers.test.ts +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +# Zig::SourceProvider::~SourceProvider() +test/bundler/bundler_bun.test.ts +test/bundler/bundler_cjs2esm.test.ts +test/bundler/bundler_edgecase.test.ts +test/bundler/bundler_jsx.test.ts +test/bundler/bundler_loader.test.ts +test/bundler/bundler_minify.test.ts +test/bundler/esbuild/dce.test.ts +test/bundler/esbuild/default.test.ts +test/bundler/esbuild/extra.test.ts +test/bundler/esbuild/loader.test.ts +test/bundler/esbuild/splitting.test.ts +test/bundler/html-import-manifest.test.ts +test/js/node/process/process-on.test.ts +test/js/node/v8/capture-stack-trace.test.js + +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +# JSC::HandleSet::~HandleSet +# bun.js.rare_data.deinit +test/js/bun/resolve/resolve.test.ts +test/js/bun/s3/s3-storage-class.test.ts +test/js/bun/s3/s3.test.ts +test/js/bun/util/BunObject.test.ts +test/js/bun/util/fuzzy-wuzzy.test.ts +test/js/bun/util/inspect.test.js +test/js/node/util/node-inspect-tests/parallel/util-inspect.test.js +test/js/node/vm/vm.test.ts + +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +# JSC::BuiltinNames::~BuiltinNames +test/js/bun/shell/shell-hang.test.ts +test/js/bun/util/reportError.test.ts +test/js/node/fs/abort-signal-leak-read-write-file.test.ts +test/js/node/process/process.test.js +test/js/web/websocket/websocket.test.js +test/js/web/workers/worker.test.ts +test/regression/issue/11664.test.ts + +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +# ASSERTION FAILED: m_cellState == CellState::DefinitelyWhite +test/js/node/tls/node-tls-upgrade.test.ts + +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +# Bun::NapiExternal::~NapiExternal +test/v8/v8.test.ts + +# double-free/use-after-free during Zig__GlobalObject__destructOnExit +test/bake/dev/production.test.ts + vendor/elysia/test/a.test.ts vendor/elysia/test/tracer/timing.test.ts From 6aa3b77b90bdbccbc3fb38f532092b6c8c55f9f7 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 12:54:49 -0700 Subject: [PATCH 46/60] address ci --- test/no-validate-leaksan.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index f07377a857a..9d3d01d8dc0 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -186,6 +186,7 @@ test/regression/issue/012040.test.ts test/js/web/websocket/websocket-blob.test.ts test/regression/issue/14338.test.ts test/js/bun/util/heap-snapshot.test.ts +test/regression/issue/02499/02499.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit @@ -206,6 +207,7 @@ test/js/node/test/parallel/test-http-server-reject-chunked-with-content-length.j test/js/node/test/parallel/test-http-chunked-smuggling.js test/js/node/test/parallel/test-http-double-content-length.js test/js/node/test/parallel/test-http-blank-header.js +test/js/node/test/parallel/test-http-server-keepalive-req-gc.js # double-free/use-after-free during Zig__GlobalObject__destructOnExit # bun.assert(!this.hasPendingActivity() or jsc.VirtualMachine.get().isShuttingDown()); @@ -252,6 +254,8 @@ test/cli/install/bun-pm-scan.test.ts test/bake/dev/incremental-graph-edge-deletion.test.ts test/cli/update_interactive_snapshots.test.ts test/js/web/websocket/websocket-custom-headers.test.ts +test/js/third_party/body-parser/express-memory-leak.test.ts +test/js/bun/http/serve-body-leak.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit # Zig::SourceProvider::~SourceProvider() @@ -302,6 +306,10 @@ test/v8/v8.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit test/bake/dev/production.test.ts +test/js/third_party/pg-gateway/pglite.test.ts +test/js/web/websocket/websocket-subprotocol-strict.test.ts +test/js/node/net/node-net-server.test.ts +test/js/third_party/grpc-js/test-channel-credentials.test.ts vendor/elysia/test/a.test.ts From 5e24ffc399076d01284ec6fd5963ff4f21f1d99c Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 12:55:10 -0700 Subject: [PATCH 47/60] bring these back --- .buildkite/ci.mjs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.buildkite/ci.mjs b/.buildkite/ci.mjs index d2564a0b058..caaf6474289 100755 --- a/.buildkite/ci.mjs +++ b/.buildkite/ci.mjs @@ -119,25 +119,25 @@ const buildPlatforms = [ * @type {Platform[]} */ const testPlatforms = [ - // { os: "darwin", arch: "aarch64", release: "14", tier: "latest" }, - // { os: "darwin", arch: "aarch64", release: "13", tier: "previous" }, - // { os: "darwin", arch: "x64", release: "14", tier: "latest" }, - // { os: "darwin", arch: "x64", release: "13", tier: "previous" }, - // { os: "linux", arch: "aarch64", distro: "debian", release: "12", tier: "latest" }, - // { os: "linux", arch: "x64", distro: "debian", release: "12", tier: "latest" }, - // { os: "linux", arch: "x64", baseline: true, distro: "debian", release: "12", tier: "latest" }, + { os: "darwin", arch: "aarch64", release: "14", tier: "latest" }, + { os: "darwin", arch: "aarch64", release: "13", tier: "previous" }, + { os: "darwin", arch: "x64", release: "14", tier: "latest" }, + { os: "darwin", arch: "x64", release: "13", tier: "previous" }, + { os: "linux", arch: "aarch64", distro: "debian", release: "12", tier: "latest" }, + { os: "linux", arch: "x64", distro: "debian", release: "12", tier: "latest" }, + { os: "linux", arch: "x64", baseline: true, distro: "debian", release: "12", tier: "latest" }, { os: "linux", arch: "x64", profile: "asan", distro: "debian", release: "12", tier: "latest" }, - // { os: "linux", arch: "aarch64", distro: "ubuntu", release: "25.04", tier: "latest" }, - // { os: "linux", arch: "aarch64", distro: "ubuntu", release: "24.04", tier: "latest" }, - // { os: "linux", arch: "x64", distro: "ubuntu", release: "25.04", tier: "latest" }, - // { os: "linux", arch: "x64", distro: "ubuntu", release: "24.04", tier: "latest" }, - // { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "25.04", tier: "latest" }, - // { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "24.04", tier: "latest" }, - // { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, - // { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, - // { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.21", tier: "latest" }, - // { os: "windows", arch: "x64", release: "2019", tier: "oldest" }, - // { os: "windows", arch: "x64", release: "2019", baseline: true, tier: "oldest" }, + { os: "linux", arch: "aarch64", distro: "ubuntu", release: "25.04", tier: "latest" }, + { os: "linux", arch: "aarch64", distro: "ubuntu", release: "24.04", tier: "latest" }, + { os: "linux", arch: "x64", distro: "ubuntu", release: "25.04", tier: "latest" }, + { os: "linux", arch: "x64", distro: "ubuntu", release: "24.04", tier: "latest" }, + { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "25.04", tier: "latest" }, + { os: "linux", arch: "x64", baseline: true, distro: "ubuntu", release: "24.04", tier: "latest" }, + { os: "linux", arch: "aarch64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, + { os: "linux", arch: "x64", abi: "musl", distro: "alpine", release: "3.21", tier: "latest" }, + { os: "linux", arch: "x64", abi: "musl", baseline: true, distro: "alpine", release: "3.21", tier: "latest" }, + { os: "windows", arch: "x64", release: "2019", tier: "oldest" }, + { os: "windows", arch: "x64", release: "2019", baseline: true, tier: "oldest" }, ]; /** From 6a71526bcfcd7c1989bf047f5b02271cfaaedd3f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 14:17:15 -0700 Subject: [PATCH 48/60] address ci --- test/no-validate-leaksan.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 9d3d01d8dc0..bbdf0e88ae5 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -307,9 +307,12 @@ test/v8/v8.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit test/bake/dev/production.test.ts test/js/third_party/pg-gateway/pglite.test.ts + test/js/web/websocket/websocket-subprotocol-strict.test.ts test/js/node/net/node-net-server.test.ts test/js/third_party/grpc-js/test-channel-credentials.test.ts +test/js/bun/http/bun-connect-x509.test.ts +test/js/third_party/rollup-v4/rollup-v4.test.ts vendor/elysia/test/a.test.ts From 752265940b38b23cb484d4de5326f22424807e85 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 15:29:32 -0700 Subject: [PATCH 49/60] more --- scripts/runner.node.mjs | 12 +- src/bun.js/bindings/ErrorStackTrace.cpp | 4 +- src/codegen/bundle-modules.ts | 2 +- test/no-validate-leaksan.txt | 188 ++++++++++-------------- 4 files changed, 87 insertions(+), 119 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index d44297e8389..6c73ce081b5 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -454,9 +454,9 @@ async function runTests() { const { ok, stdoutPreview, error } = result; if (ok) { if (failure) { - flakyResults.push(failure); + flakyResults.push(title); } else { - okResults.push(result); + okResults.push(title); } break; } @@ -473,7 +473,7 @@ async function runTests() { if (attempt >= maxAttempts || isAlwaysFailure(error)) { flaky = false; - failedResults.push(failure); + failedResults.push(title); break; } } @@ -834,14 +834,14 @@ async function runTests() { if (failedResults.length) { console.log(`${getAnsi("red")}Failing Tests:${getAnsi("reset")}`); - for (const { testPath } of failedResults) { + for (const testPath of failedResults) { console.log(`${getAnsi("red")}- ${testPath}${getAnsi("reset")}`); } } if (flakyResults.length) { console.log(`${getAnsi("yellow")}Flaky Tests:${getAnsi("reset")}`); - for (const { testPath } of flakyResults) { + for (const testPath of flakyResults) { console.log(`${getAnsi("yellow")}- ${testPath}${getAnsi("reset")}`); } } @@ -1316,7 +1316,7 @@ async function spawnBunTest(execPath, testPath, opts = { cwd }) { env.BUN_JSC_validateExceptionChecks = "1"; env.BUN_JSC_dumpSimulatedThrows = "1"; } - if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(testPath)) { + if ((basename(execPath).includes("asan") || !isCI) && shouldValidateLeakSan(relative(cwd, absPath))) { env.BUN_DESTRUCT_VM_ON_EXIT = "1"; env.ASAN_OPTIONS = "allow_user_segv_handler=1:disable_coredump=0:detect_leaks=1"; // prettier-ignore diff --git a/src/bun.js/bindings/ErrorStackTrace.cpp b/src/bun.js/bindings/ErrorStackTrace.cpp index 4e518caa8c4..75ac0f70e90 100644 --- a/src/bun.js/bindings/ErrorStackTrace.cpp +++ b/src/bun.js/bindings/ErrorStackTrace.cpp @@ -543,11 +543,11 @@ String sourceURL(JSC::CodeBlock* codeBlock) String sourceURL(JSC::VM& vm, const JSC::StackFrame& frame) { if (frame.isWasmFrame()) { - return MAKE_STATIC_STRING_IMPL("[wasm code]"); + return "[wasm code]"_s; } if (!frame.hasLineAndColumnInfo()) [[unlikely]] { - return MAKE_STATIC_STRING_IMPL("[native code]"); + return "[native code]"_s; } return sourceURL(frame.codeBlock()); diff --git a/src/codegen/bundle-modules.ts b/src/codegen/bundle-modules.ts index 11dfc420ce7..429b37c2b10 100644 --- a/src/codegen/bundle-modules.ts +++ b/src/codegen/bundle-modules.ts @@ -346,7 +346,7 @@ JSValue InternalModuleRegistry::createInternalModuleById(JSGlobalObject* globalO const inner = n >= nativeStartIndex ? `return generateNativeModule(globalObject, vm, generateNativeModule_${nativeModuleEnums[id]});` - : `INTERNAL_MODULE_REGISTRY_GENERATE(globalObject, vm, MAKE_STATIC_STRING_IMPL("${moduleName}"), MAKE_STATIC_STRING_IMPL(${fileBase}), InternalModuleRegistryConstants::${idToEnumName(id)}Code, MAKE_STATIC_STRING_IMPL("${urlString}"));`; + : `INTERNAL_MODULE_REGISTRY_GENERATE(globalObject, vm, "${moduleName}"_s, ${fileBase}_s, InternalModuleRegistryConstants::${idToEnumName(id)}Code, "${urlString}"_s);`; return `case Field::${idToEnumName(id)}: { ${inner} }`; diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index bbdf0e88ae5..4eb44507b2c 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -273,6 +273,84 @@ test/bundler/esbuild/splitting.test.ts test/bundler/html-import-manifest.test.ts test/js/node/process/process-on.test.ts test/js/node/v8/capture-stack-trace.test.js +vendor/elysia/test/aot/analysis.test.ts +vendor/elysia/test/aot/generation.test.ts +vendor/elysia/test/aot/has-transform.test.ts +vendor/elysia/test/aot/has-type.test.ts +vendor/elysia/test/aot/response.test.ts +vendor/elysia/test/cookie/response.test.ts +vendor/elysia/test/core/as.test.ts +vendor/elysia/test/core/config.test.ts +vendor/elysia/test/core/dynamic.test.ts +vendor/elysia/test/core/elysia.test.ts +vendor/elysia/test/core/handle-error.test.ts +vendor/elysia/test/core/modules.test.ts +vendor/elysia/test/core/mount.test.ts +vendor/elysia/test/core/native-static.test.ts +vendor/elysia/test/core/normalize.test.ts +vendor/elysia/test/core/redirect.test.ts +vendor/elysia/test/core/response.test.ts +vendor/elysia/test/core/scoped.test.ts +vendor/elysia/test/core/stop.test.ts +vendor/elysia/test/extends/decorators.test.ts +vendor/elysia/test/extends/error.test.ts +vendor/elysia/test/extends/models.test.ts +vendor/elysia/test/extends/store.test.ts +vendor/elysia/test/hoc/index.test.ts +vendor/elysia/test/lifecycle/after-handle.test.ts +vendor/elysia/test/lifecycle/before-handle.test.ts +vendor/elysia/test/lifecycle/derive.test.ts +vendor/elysia/test/lifecycle/error.test.ts +vendor/elysia/test/lifecycle/hook-types.test.ts +vendor/elysia/test/lifecycle/map-derive.test.ts +vendor/elysia/test/lifecycle/map-resolve.test.ts +vendor/elysia/test/lifecycle/map-response.test.ts +vendor/elysia/test/lifecycle/parser.test.ts +vendor/elysia/test/lifecycle/request.test.ts +vendor/elysia/test/lifecycle/resolve.test.ts +vendor/elysia/test/lifecycle/response.test.ts +vendor/elysia/test/lifecycle/transform.test.ts +vendor/elysia/test/macro/macro.test.ts +vendor/elysia/test/path/group.test.ts +vendor/elysia/test/path/guard.test.ts +vendor/elysia/test/path/path.test.ts +vendor/elysia/test/path/plugin.test.ts +vendor/elysia/test/plugins/affix.test.ts +vendor/elysia/test/plugins/checksum.test.ts +vendor/elysia/test/plugins/error-propagation.test.ts +vendor/elysia/test/production/index.test.ts +vendor/elysia/test/response/custom-response.test.ts +vendor/elysia/test/response/headers.test.ts +vendor/elysia/test/response/redirect.test.ts +vendor/elysia/test/response/static.test.ts +vendor/elysia/test/response/stream.test.ts +vendor/elysia/test/sucrose/query.test.ts +vendor/elysia/test/sucrose/sucrose.test.ts +vendor/elysia/test/tracer/aot.test.ts +vendor/elysia/test/tracer/detail.test.ts +vendor/elysia/test/tracer/timing.test.ts +vendor/elysia/test/tracer/trace.test.ts +vendor/elysia/test/type-system/array-string.test.ts +vendor/elysia/test/type-system/boolean-string.test.ts +vendor/elysia/test/type-system/coercion-number.test.ts +vendor/elysia/test/type-system/date.test.ts +vendor/elysia/test/type-system/object-string.test.ts +vendor/elysia/test/type-system/string-format.test.ts +vendor/elysia/test/type-system/union-enum.test.ts +vendor/elysia/test/units/deduplicate-checksum.test.ts +vendor/elysia/test/units/map-compact-response.test.ts +vendor/elysia/test/units/map-early-response.test.ts +vendor/elysia/test/units/map-response.test.ts +vendor/elysia/test/units/merge-deep.test.ts +vendor/elysia/test/units/replace-schema-type.test.ts +vendor/elysia/test/validator/body.test.ts +vendor/elysia/test/validator/header.test.ts +vendor/elysia/test/validator/params.test.ts +vendor/elysia/test/validator/query.test.ts +vendor/elysia/test/validator/response.test.ts +vendor/elysia/test/validator/validator.test.ts +vendor/elysia/test/ws/destructuring.test.ts +vendor/elysia/test/ws/message.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit # JSC::HandleSet::~HandleSet @@ -313,113 +391,3 @@ test/js/node/net/node-net-server.test.ts test/js/third_party/grpc-js/test-channel-credentials.test.ts test/js/bun/http/bun-connect-x509.test.ts test/js/third_party/rollup-v4/rollup-v4.test.ts - - -vendor/elysia/test/a.test.ts -vendor/elysia/test/tracer/timing.test.ts -vendor/elysia/test/tracer/trace.test.ts -vendor/elysia/test/tracer/detail.test.ts -vendor/elysia/test/tracer/aot.test.ts -vendor/elysia/test/sucrose/query.test.ts -vendor/elysia/test/sucrose/extract-main-parameter.test.ts -vendor/elysia/test/sucrose/sucrose.test.ts -vendor/elysia/test/sucrose/remove-default-parameter.test.ts -vendor/elysia/test/sucrose/find-alias.test.ts -vendor/elysia/test/sucrose/infer-body-reference.test.ts -vendor/elysia/test/sucrose/retrieve-root-parameters.test.ts -vendor/elysia/test/sucrose/bracket-pair-range-reverse.test.ts -vendor/elysia/test/sucrose/remove-colon-alias.test.ts -vendor/elysia/test/sucrose/separate-function.test.ts -vendor/elysia/test/sucrose/bracket-pair-range.test.ts -vendor/elysia/test/extends/store.test.ts -vendor/elysia/test/extends/decorators.test.ts -vendor/elysia/test/extends/models.test.ts -vendor/elysia/test/extends/error.test.ts -vendor/elysia/test/hoc/index.test.ts -vendor/elysia/test/core/sanitize.test.ts -vendor/elysia/test/core/path.test.ts -vendor/elysia/test/core/mount.test.ts -vendor/elysia/test/core/redirect.test.ts -vendor/elysia/test/core/as.test.ts -vendor/elysia/test/core/normalize.test.ts -vendor/elysia/test/core/context.test.ts -vendor/elysia/test/core/native-static.test.ts -vendor/elysia/test/core/modules.test.ts -vendor/elysia/test/core/elysia.test.ts -vendor/elysia/test/core/handle-error.test.ts -vendor/elysia/test/core/dynamic.test.ts -vendor/elysia/test/core/compose.test.ts -vendor/elysia/test/core/config.test.ts -vendor/elysia/test/core/stop.test.ts -vendor/elysia/test/core/formdata.test.ts -vendor/elysia/test/validator/query.test.ts -vendor/elysia/test/validator/header.test.ts -vendor/elysia/test/validator/standalone.test.ts -vendor/elysia/test/validator/body.test.ts -vendor/elysia/test/validator/response.test.ts -vendor/elysia/test/validator/exact-mirror.test.ts -vendor/elysia/test/validator/validator.test.ts -vendor/elysia/test/validator/params.test.ts -vendor/elysia/test/validator/encode.test.ts -vendor/elysia/test/response/static.test.ts -vendor/elysia/test/response/headers.test.ts -vendor/elysia/test/response/redirect.test.ts -vendor/elysia/test/response/custom-response.test.ts -vendor/elysia/test/response/stream.test.ts -vendor/elysia/test/plugins/checksum.test.ts -vendor/elysia/test/plugins/affix.test.ts -vendor/elysia/test/plugins/plugin.test.ts -vendor/elysia/test/plugins/error-propagation.test.ts -vendor/elysia/test/path/path.test.ts -vendor/elysia/test/path/group.test.ts -vendor/elysia/test/path/guard.test.ts -vendor/elysia/test/type-system/boolean-string.test.ts -vendor/elysia/test/type-system/array-string.test.ts -vendor/elysia/test/type-system/form.test.ts -vendor/elysia/test/type-system/coercion-number.test.ts -vendor/elysia/test/type-system/object-string.test.ts -vendor/elysia/test/type-system/date.test.ts -vendor/elysia/test/type-system/string-format.test.ts -vendor/elysia/test/type-system/union-enum.test.ts -vendor/elysia/test/lifecycle/transform.test.ts -vendor/elysia/test/lifecycle/map-derive.test.ts -vendor/elysia/test/lifecycle/hook-types.test.ts -vendor/elysia/test/lifecycle/derive.test.ts -vendor/elysia/test/lifecycle/parser.test.ts -vendor/elysia/test/lifecycle/map-response.test.ts -vendor/elysia/test/lifecycle/request.test.ts -vendor/elysia/test/lifecycle/response.test.ts -vendor/elysia/test/lifecycle/map-resolve.test.ts -vendor/elysia/test/lifecycle/resolve.test.ts -vendor/elysia/test/lifecycle/error.test.ts -vendor/elysia/test/lifecycle/before-handle.test.ts -vendor/elysia/test/lifecycle/after-handle.test.ts -vendor/elysia/test/bun/router.test.ts -vendor/elysia/test/units/has-transform.test.ts -vendor/elysia/test/units/numeric.test.ts -vendor/elysia/test/units/class-to-object.test.ts -vendor/elysia/test/units/replace-schema-type.test.ts -vendor/elysia/test/units/deduplicate-checksum.test.ts -vendor/elysia/test/units/has-ref.test.ts -vendor/elysia/test/units/merge-deep.test.ts -vendor/elysia/test/units/merge-object-schemas.test.ts -vendor/elysia/test/macro/macro.test.ts -vendor/elysia/test/production/index.test.ts -vendor/elysia/test/cookie/explicit.test.ts -vendor/elysia/test/cookie/response.test.ts -vendor/elysia/test/cookie/implicit.test.ts -vendor/elysia/test/cookie/signature.test.ts -vendor/elysia/test/aot/has-transform.test.ts -vendor/elysia/test/aot/response.test.ts -vendor/elysia/test/aot/generation.test.ts -vendor/elysia/test/aot/analysis.test.ts -vendor/elysia/test/aot/has-type.test.ts -vendor/elysia/test/ws/destructuring.test.ts -vendor/elysia/test/ws/message.test.ts -vendor/elysia/test/ws/connection.test.ts -vendor/elysia/test/ws/aot.test.ts -vendor/elysia/test/adapter/web-standard/map-compact-response.test.ts -vendor/elysia/test/adapter/web-standard/map-response.test.ts -vendor/elysia/test/adapter/web-standard/cookie-to-header.test.ts -vendor/elysia/test/adapter/web-standard/set-cookie.test.ts -vendor/elysia/test/adapter/web-standard/map-early-response.test.ts From f3231f523c82f10b9270eedbbe71bfef9e7246b7 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 16:14:16 -0700 Subject: [PATCH 50/60] address ci --- scripts/runner.node.mjs | 14 +++++++++----- test/no-validate-leaksan.txt | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 6c73ce081b5..7c31ef1fac0 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -419,7 +419,9 @@ async function runTests() { const okResults = []; const flakyResults = []; + const flakyResults2 = []; const failedResults = []; + const failedResults2 = []; const maxAttempts = 1 + (parseInt(options["retries"]) || 0); const parallelism = options["parallel"] ? availableParallelism() : 1; @@ -454,9 +456,10 @@ async function runTests() { const { ok, stdoutPreview, error } = result; if (ok) { if (failure) { - flakyResults.push(title); + flakyResults.push(failure); + flakyResults2.push(title); } else { - okResults.push(title); + okResults.push(result); } break; } @@ -473,7 +476,8 @@ async function runTests() { if (attempt >= maxAttempts || isAlwaysFailure(error)) { flaky = false; - failedResults.push(title); + failedResults.push(failure); + failedResults2.push(title); break; } } @@ -834,14 +838,14 @@ async function runTests() { if (failedResults.length) { console.log(`${getAnsi("red")}Failing Tests:${getAnsi("reset")}`); - for (const testPath of failedResults) { + for (const testPath of failedResults2) { console.log(`${getAnsi("red")}- ${testPath}${getAnsi("reset")}`); } } if (flakyResults.length) { console.log(`${getAnsi("yellow")}Flaky Tests:${getAnsi("reset")}`); - for (const testPath of flakyResults) { + for (const testPath of flakyResults2) { console.log(`${getAnsi("yellow")}- ${testPath}${getAnsi("reset")}`); } } diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 4eb44507b2c..6fef02a97c9 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -187,6 +187,7 @@ test/js/web/websocket/websocket-blob.test.ts test/regression/issue/14338.test.ts test/js/bun/util/heap-snapshot.test.ts test/regression/issue/02499/02499.test.ts +test/js/node/test/parallel/test-http-server-stale-close.js # double-free/use-after-free during Zig__GlobalObject__destructOnExit From 4dd02bd898ada340b4fb65a3c6b78fc29e5fd772 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 17 Sep 2025 16:48:10 -0700 Subject: [PATCH 51/60] address ci --- test/no-validate-leaksan.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 6fef02a97c9..76a83a97dbc 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -382,6 +382,7 @@ test/js/node/tls/node-tls-upgrade.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit # Bun::NapiExternal::~NapiExternal test/v8/v8.test.ts +test/napi/node-napi-tests/test/js-native-api/test_general/do.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit test/bake/dev/production.test.ts From ec46bea9d7a7d7ee47c38590358792a54023c183 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 18 Sep 2025 14:58:50 -0700 Subject: [PATCH 52/60] address review --- scripts/runner.node.mjs | 2 +- src/bun.js/api/bun/socket.zig | 4 ++-- src/bun.js/bindings/InternalModuleRegistry.cpp | 4 ++-- src/bun.js/bindings/ZigSourceProvider.h | 3 +-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 7c31ef1fac0..589ed93205f 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -1123,7 +1123,7 @@ async function spawnBun(execPath, { args, cwd, timeout, env, stdout, stderr }) { : { BUN_ENABLE_CRASH_REPORTING: "0" }), }; - if (basename(execPath).includes("asan")) { + if (basename(execPath).includes("asan") && bunEnv.ASAN_OPTIONS === undefined) { bunEnv.ASAN_OPTIONS = "allow_user_segv_handler=1:disable_coredump=0"; } diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index 703c7390297..9372b6c1d1e 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -830,7 +830,7 @@ pub fn NewSocket(comptime ssl: bool) type { }; } - pub fn getRemoteAddress(this: *This, globalThis: *jsc.JSGlobalObject) JSValue { + pub fn getRemoteAddress(this: *This, globalThis: *jsc.JSGlobalObject) bun.JSError!JSValue { if (this.socket.isDetached()) { return .js_undefined; } @@ -846,7 +846,7 @@ pub fn NewSocket(comptime ssl: bool) type { }; const text = bun.fmt.formatIp(address, &text_buf) catch unreachable; - return bun.String.createUTF8ForJS(globalThis, text) catch @panic("unreachable"); + return bun.String.createUTF8ForJS(globalThis, text); } pub fn getRemotePort(this: *This, _: *jsc.JSGlobalObject) JSValue { diff --git a/src/bun.js/bindings/InternalModuleRegistry.cpp b/src/bun.js/bindings/InternalModuleRegistry.cpp index bbb8f70f27f..5633d2f92ce 100644 --- a/src/bun.js/bindings/InternalModuleRegistry.cpp +++ b/src/bun.js/bindings/InternalModuleRegistry.cpp @@ -104,10 +104,10 @@ JSValue initializeInternalModuleFromDisk( JSGlobalObject* globalObject, VM& vm, const WTF::String& moduleName, - const WTF::String& fileBase, + WTF::String fileBase, const WTF::String& urlString) { - WTF::String file = makeString(ASCIILiteral::fromLiteralUnsafe(BUN_DYNAMIC_JS_LOAD_PATH), "/"_s, fileBase); + WTF::String file = makeString(ASCIILiteral::fromLiteralUnsafe(BUN_DYNAMIC_JS_LOAD_PATH), "/"_s, WTFMove(fileBase)); if (auto contents = WTF::FileSystemImpl::readEntireFile(file)) { auto string = WTF::String::fromUTF8(contents.value()); return generateModule(globalObject, vm, string, moduleName, urlString); diff --git a/src/bun.js/bindings/ZigSourceProvider.h b/src/bun.js/bindings/ZigSourceProvider.h index 40362880f7b..2379c883c47 100644 --- a/src/bun.js/bindings/ZigSourceProvider.h +++ b/src/bun.js/bindings/ZigSourceProvider.h @@ -50,8 +50,7 @@ class SourceProvider final : public JSC::SourceProvider { return m_cachedBytecode.copyRef(); }; - void updateCache(const UnlinkedFunctionExecutable* executable, const SourceCode&, - CodeSpecializationKind kind, const UnlinkedFunctionCodeBlock* codeBlock); + void updateCache(const UnlinkedFunctionExecutable* executable, const SourceCode&, CodeSpecializationKind kind, const UnlinkedFunctionCodeBlock* codeBlock); void cacheBytecode(const BytecodeCacheGenerator& generator); void commitCachedBytecode(); bool isBytecodeCacheEnabled() const; From a2f5f19be363089daf6f775c01ca970b45b1d2a7 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 18 Sep 2025 15:37:50 -0700 Subject: [PATCH 53/60] add a way to make sure it's working --- .vscode/launch.json | 4 ++-- scripts/runner.node.mjs | 6 +++++- test/js/bun/test/parallel/test-bun-env.js | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 test/js/bun/test/parallel/test-bun-env.js diff --git a/.vscode/launch.json b/.vscode/launch.json index 5b4e6fee236..72be0b1e411 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -26,7 +26,7 @@ // "BUN_JSC_dumpSimulatedThrows": "1", // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", // "BUN_DESTRUCT_VM_ON_EXIT": "1", - // "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", + // "ASAN_OPTIONS": "allow_user_segv_handler=1:disable_coredump=0:detect_leaks=1", // "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=1:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", @@ -69,7 +69,7 @@ // "BUN_JSC_dumpSimulatedThrows": "1", // "BUN_JSC_unexpectedExceptionStackTraceLimit": "20", // "BUN_DESTRUCT_VM_ON_EXIT": "1", - // "ASAN_OPTIONS": "detect_leaks=1:allow_user_segv_handler=1", + // "ASAN_OPTIONS": "allow_user_segv_handler=1:disable_coredump=0:detect_leaks=1", // "LSAN_OPTIONS": "malloc_context_size=100:print_suppressions=1:suppressions=${workspaceFolder}/test/leaksan.supp", }, "console": "internalConsole", diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index 589ed93205f..c29d351733c 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -1563,7 +1563,11 @@ function isNodeTest(path) { return false; } const unixPath = path.replaceAll(sep, "/"); - return unixPath.includes("js/node/test/parallel/") || unixPath.includes("js/node/test/sequential/"); + return ( + unixPath.includes("js/node/test/parallel/") || + unixPath.includes("js/node/test/sequential/") || + unixPath.includes("js/bun/test/parallel/") + ); } /** diff --git a/test/js/bun/test/parallel/test-bun-env.js b/test/js/bun/test/parallel/test-bun-env.js new file mode 100644 index 00000000000..6ab90a94c91 --- /dev/null +++ b/test/js/bun/test/parallel/test-bun-env.js @@ -0,0 +1 @@ +console.log(Bun.env); From 3b2b969ff6ec9d5122e07817e11092db9c499467 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 18 Sep 2025 18:02:03 -0700 Subject: [PATCH 54/60] address review --- scripts/runner.node.mjs | 12 ++++++------ src/bun.js/api/BunObject.zig | 6 +++--- src/bun.js/api/FFIObject.zig | 2 +- src/bun.js/api/crypto/PBKDF2.zig | 2 +- src/bun.js/api/server/NodeHTTPResponse.zig | 2 +- src/bun.js/bindings/JSBuffer.cpp | 3 +-- src/bun.js/bindings/JSValue.zig | 8 ++------ src/bun.js/bindings/sqlite/JSSQLStatement.cpp | 7 +++---- src/bun.js/jsc/array_buffer.zig | 2 +- src/bun.js/webcore/encoding.zig | 4 ++-- 10 files changed, 21 insertions(+), 27 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index c29d351733c..74e451a55fe 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -419,9 +419,9 @@ async function runTests() { const okResults = []; const flakyResults = []; - const flakyResults2 = []; + const flakyResultsTitles = []; const failedResults = []; - const failedResults2 = []; + const failedResultsTitles = []; const maxAttempts = 1 + (parseInt(options["retries"]) || 0); const parallelism = options["parallel"] ? availableParallelism() : 1; @@ -457,7 +457,7 @@ async function runTests() { if (ok) { if (failure) { flakyResults.push(failure); - flakyResults2.push(title); + flakyResultsTitles.push(title); } else { okResults.push(result); } @@ -477,7 +477,7 @@ async function runTests() { if (attempt >= maxAttempts || isAlwaysFailure(error)) { flaky = false; failedResults.push(failure); - failedResults2.push(title); + failedResultsTitles.push(title); break; } } @@ -838,14 +838,14 @@ async function runTests() { if (failedResults.length) { console.log(`${getAnsi("red")}Failing Tests:${getAnsi("reset")}`); - for (const testPath of failedResults2) { + for (const testPath of failedResultsTitles) { console.log(`${getAnsi("red")}- ${testPath}${getAnsi("reset")}`); } } if (flakyResults.length) { console.log(`${getAnsi("yellow")}Flaky Tests:${getAnsi("reset")}`); - for (const testPath of flakyResults2) { + for (const testPath of flakyResultsTitles) { console.log(`${getAnsi("yellow")}- ${testPath}${getAnsi("reset")}`); } } diff --git a/src/bun.js/api/BunObject.zig b/src/bun.js/api/BunObject.zig index 2256d48a3da..006b0d72e79 100644 --- a/src/bun.js/api/BunObject.zig +++ b/src/bun.js/api/BunObject.zig @@ -1814,7 +1814,7 @@ pub const JSZstd = struct { output = try allocator.realloc(output, compressed_size); } - return jsc.JSValue.createBuffer(globalThis, output, bun.default_allocator); + return jsc.JSValue.createBuffer(globalThis, output); } pub fn decompressSync(globalThis: *JSGlobalObject, callframe: *jsc.CallFrame) bun.JSError!JSValue { @@ -1849,7 +1849,7 @@ pub const JSZstd = struct { // mimalloc doesn't care about the self-reported size of the slice. output.len = actual_size; - return jsc.JSValue.createBuffer(globalThis, output, bun.default_allocator); + return jsc.JSValue.createBuffer(globalThis, output); } // --- Async versions --- @@ -1951,7 +1951,7 @@ pub const JSZstd = struct { } const output_slice = this.output; - const buffer_value = jsc.JSValue.createBuffer(globalThis, output_slice, bun.default_allocator); + const buffer_value = jsc.JSValue.createBuffer(globalThis, output_slice); this.output = &[_]u8{}; promise.resolve(globalThis, buffer_value); } diff --git a/src/bun.js/api/FFIObject.zig b/src/bun.js/api/FFIObject.zig index 0cdc3c54b87..b00bbf88cbb 100644 --- a/src/bun.js/api/FFIObject.zig +++ b/src/bun.js/api/FFIObject.zig @@ -582,7 +582,7 @@ pub fn toBuffer( return jsc.JSValue.createBufferWithCtx(globalThis, slice, ctx, callback); } - return jsc.JSValue.createBuffer(globalThis, slice, null); + return jsc.JSValue.createBuffer(globalThis, slice); }, } } diff --git a/src/bun.js/api/crypto/PBKDF2.zig b/src/bun.js/api/crypto/PBKDF2.zig index 8ef641bac1f..3fed8e60424 100644 --- a/src/bun.js/api/crypto/PBKDF2.zig +++ b/src/bun.js/api/crypto/PBKDF2.zig @@ -77,7 +77,7 @@ pub const Job = struct { const output_slice = this.output; assert(output_slice.len == @as(usize, @intCast(this.pbkdf2.length))); - const buffer_value = jsc.JSValue.createBuffer(globalThis, output_slice, bun.default_allocator); + const buffer_value = jsc.JSValue.createBuffer(globalThis, output_slice); this.output = &[_]u8{}; promise.resolve(globalThis, buffer_value); } diff --git a/src/bun.js/api/server/NodeHTTPResponse.zig b/src/bun.js/api/server/NodeHTTPResponse.zig index 8207977a075..bc322f087ee 100644 --- a/src/bun.js/api/server/NodeHTTPResponse.zig +++ b/src/bun.js/api/server/NodeHTTPResponse.zig @@ -593,7 +593,7 @@ pub fn drainRequestBody(this: *NodeHTTPResponse, globalObject: *jsc.JSGlobalObje fn drainBufferedRequestBodyFromPause(this: *NodeHTTPResponse, globalObject: *jsc.JSGlobalObject) ?jsc.JSValue { if (this.buffered_request_body_data_during_pause.len > 0) { - const result = jsc.JSValue.createBuffer(globalObject, this.buffered_request_body_data_during_pause.slice(), bun.default_allocator); + const result = jsc.JSValue.createBuffer(globalObject, this.buffered_request_body_data_during_pause.slice()); this.buffered_request_body_data_during_pause = .{}; return result; } diff --git a/src/bun.js/bindings/JSBuffer.cpp b/src/bun.js/bindings/JSBuffer.cpp index 67c9b74eed3..34a11d5f532 100644 --- a/src/bun.js/bindings/JSBuffer.cpp +++ b/src/bun.js/bindings/JSBuffer.cpp @@ -340,7 +340,6 @@ template<> class IDLOperation { JSC::EncodedJSValue JSBuffer__bufferFromPointerAndLengthAndDeinit(JSC::JSGlobalObject* lexicalGlobalObject, char* ptr, size_t length, void* ctx, JSTypedArrayBytesDeallocator bytesDeallocator) { - JSC::JSUint8Array* uint8Array = nullptr; auto* globalObject = defaultGlobalObject(lexicalGlobalObject); @@ -350,7 +349,7 @@ JSC::EncodedJSValue JSBuffer__bufferFromPointerAndLengthAndDeinit(JSC::JSGlobalO if (length > 0) [[likely]] { ASSERT(bytesDeallocator); auto buffer = ArrayBuffer::createFromBytes({ reinterpret_cast(ptr), length }, createSharedTask([=](void* p) { - bytesDeallocator(p, NULL); + bytesDeallocator(p, ctx); })); uint8Array = JSC::JSUint8Array::create(lexicalGlobalObject, subclassStructure, WTFMove(buffer), 0, length); diff --git a/src/bun.js/bindings/JSValue.zig b/src/bun.js/bindings/JSValue.zig index 4887d49f851..40a46b492af 100644 --- a/src/bun.js/bindings/JSValue.zig +++ b/src/bun.js/bindings/JSValue.zig @@ -553,14 +553,10 @@ pub const JSValue = enum(i64) { extern fn JSBuffer__bufferFromLength(*JSGlobalObject, i64) JSValue; /// Must come from globally-allocated memory if allocator is not null - pub fn createBuffer(globalObject: *JSGlobalObject, slice: []u8, allocator: ?std.mem.Allocator) JSValue { + pub fn createBuffer(globalObject: *JSGlobalObject, slice: []u8) JSValue { jsc.markBinding(@src()); @setRuntimeSafety(false); - if (allocator) |alloc| { - return JSBuffer__bufferFromPointerAndLengthAndDeinit(globalObject, slice.ptr, slice.len, alloc.ptr, jsc.array_buffer.MarkedArrayBuffer_deallocator); - } else { - return JSBuffer__bufferFromPointerAndLengthAndDeinit(globalObject, slice.ptr, slice.len, null, null); - } + return JSBuffer__bufferFromPointerAndLengthAndDeinit(globalObject, slice.ptr, slice.len, null, jsc.array_buffer.MarkedArrayBuffer_deallocator); } extern fn JSC__JSValue__createUninitializedUint8Array(globalObject: *JSGlobalObject, len: usize) JSValue; diff --git a/src/bun.js/bindings/sqlite/JSSQLStatement.cpp b/src/bun.js/bindings/sqlite/JSSQLStatement.cpp index 706b1a2025c..516b7cba4f0 100644 --- a/src/bun.js/bindings/sqlite/JSSQLStatement.cpp +++ b/src/bun.js/bindings/sqlite/JSSQLStatement.cpp @@ -147,13 +147,12 @@ static WTF::String sqliteString(const char* str) return res; } -static void sqlite_free_typed_array(void* ctx, void* buf) +static void sqlite_free_typed_array(void* buf, void* ctx) { sqlite3_free((void*)buf); } -static constexpr int DEFAULT_SQLITE_FLAGS - = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; +static constexpr int DEFAULT_SQLITE_FLAGS = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE; static constexpr unsigned int DEFAULT_SQLITE_PREPARE_FLAGS = SQLITE_PREPARE_PERSISTENT; static constexpr int MAX_SQLITE_PREPARE_FLAG = SQLITE_PREPARE_PERSISTENT | SQLITE_PREPARE_NORMALIZE | SQLITE_PREPARE_NO_VTAB; @@ -1280,7 +1279,7 @@ JSC_DEFINE_HOST_FUNCTION(jsSQLStatementSerialize, (JSC::JSGlobalObject * lexical return {}; } - RELEASE_AND_RETURN(scope, JSBuffer__bufferFromPointerAndLengthAndDeinit(lexicalGlobalObject, reinterpret_cast(data), static_cast(length), data, sqlite_free_typed_array)); + RELEASE_AND_RETURN(scope, JSBuffer__bufferFromPointerAndLengthAndDeinit(lexicalGlobalObject, reinterpret_cast(data), static_cast(length), NULL, sqlite_free_typed_array)); } JSC_DEFINE_HOST_FUNCTION(jsSQLStatementLoadExtensionFunction, (JSC::JSGlobalObject * lexicalGlobalObject, JSC::CallFrame* callFrame)) diff --git a/src/bun.js/jsc/array_buffer.zig b/src/bun.js/jsc/array_buffer.zig index c800d670153..87bd1f59ecf 100644 --- a/src/bun.js/jsc/array_buffer.zig +++ b/src/bun.js/jsc/array_buffer.zig @@ -590,7 +590,7 @@ pub const MarkedArrayBuffer = struct { } pub fn toNodeBuffer(this: *const MarkedArrayBuffer, ctx: *jsc.JSGlobalObject) jsc.JSValue { - return jsc.JSValue.createBufferWithCtx(ctx, this.buffer.byteSlice(), this.buffer.ptr, MarkedArrayBuffer_deallocator); + return jsc.JSValue.createBuffer(ctx, this.buffer.byteSlice()); } pub fn toJS(this: *const MarkedArrayBuffer, globalObject: *jsc.JSGlobalObject) bun.JSError!jsc.JSValue { diff --git a/src/bun.js/webcore/encoding.zig b/src/bun.js/webcore/encoding.zig index 8356089087b..65f7874196b 100644 --- a/src/bun.js/webcore/encoding.zig +++ b/src/bun.js/webcore/encoding.zig @@ -50,7 +50,7 @@ export fn Bun__encoding__constructFromLatin1(globalObject: *JSGlobalObject, inpu .base64 => constructFromU8(input, len, bun.default_allocator, .base64), else => unreachable, }; - return jsc.JSValue.createBuffer(globalObject, slice, globalObject.bunVM().allocator); + return jsc.JSValue.createBuffer(globalObject, slice); } export fn Bun__encoding__constructFromUTF16(globalObject: *JSGlobalObject, input: [*]const u16, len: usize, encoding: u8) JSValue { @@ -65,7 +65,7 @@ export fn Bun__encoding__constructFromUTF16(globalObject: *JSGlobalObject, input .latin1 => constructFromU16(input, len, bun.default_allocator, .latin1), else => unreachable, }; - return jsc.JSValue.createBuffer(globalObject, slice, globalObject.bunVM().allocator); + return jsc.JSValue.createBuffer(globalObject, slice); } // for SQL statement From 300f321dec99830d5a0c73e56a01ae2bce99d400 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 18 Sep 2025 18:06:35 -0700 Subject: [PATCH 55/60] use OPENSSL_clear_free over OPENSSL_free --- src/bun.js/bindings/node/crypto/CryptoUtil.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bun.js/bindings/node/crypto/CryptoUtil.cpp b/src/bun.js/bindings/node/crypto/CryptoUtil.cpp index 2f8ee8cb768..056410c8ed2 100644 --- a/src/bun.js/bindings/node/crypto/CryptoUtil.cpp +++ b/src/bun.js/bindings/node/crypto/CryptoUtil.cpp @@ -492,11 +492,11 @@ bool convertP1363ToDER(const ncrypto::Buffer& p1363Sig, } if (!derBuffer.tryAppend(std::span { buf.data, buf.len })) { - OPENSSL_free(buf.data); + OPENSSL_clear_free(buf.data, buf.len); return false; } - OPENSSL_free(buf.data); + OPENSSL_clear_free(buf.data, buf.len); return true; } From 4b881a47f5b5618c80d90367ae0bb176a385a571 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 18 Sep 2025 21:10:29 -0700 Subject: [PATCH 56/60] make getThreadLocalDefault be default_allocator when asan is on --- src/allocators/MimallocArena.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/src/allocators/MimallocArena.zig b/src/allocators/MimallocArena.zig index 0b6a646b86a..59b81d9e4da 100644 --- a/src/allocators/MimallocArena.zig +++ b/src/allocators/MimallocArena.zig @@ -124,6 +124,7 @@ pub fn borrow(self: Self) Borrowed { /// It uses pthread_getspecific to do that. /// We can save those extra calls if we just do it once in here pub fn getThreadLocalDefault() std.mem.Allocator { + if (bun.Environment.enable_asan) return bun.default_allocator; return Borrowed.getDefault().allocator(); } From 220c02c9ffe6b7887553fa7dcc043fd713acfb1e Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Thu, 18 Sep 2025 21:52:32 -0700 Subject: [PATCH 57/60] address ci --- test/no-validate-leaksan.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index 76a83a97dbc..ace0cca28bd 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -383,6 +383,7 @@ test/js/node/tls/node-tls-upgrade.test.ts # Bun::NapiExternal::~NapiExternal test/v8/v8.test.ts test/napi/node-napi-tests/test/js-native-api/test_general/do.test.ts +test/napi/node-napi-tests/test/js-native-api/6_object_wrap/do.test.ts # double-free/use-after-free during Zig__GlobalObject__destructOnExit test/bake/dev/production.test.ts From fd3eefc37469f58c47907691588b0deceb485b2f Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Fri, 19 Sep 2025 01:14:28 -0700 Subject: [PATCH 58/60] use raii --- src/bun.js/bindings/node/crypto/CryptoUtil.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/bun.js/bindings/node/crypto/CryptoUtil.cpp b/src/bun.js/bindings/node/crypto/CryptoUtil.cpp index 056410c8ed2..2c8d73c0ee2 100644 --- a/src/bun.js/bindings/node/crypto/CryptoUtil.cpp +++ b/src/bun.js/bindings/node/crypto/CryptoUtil.cpp @@ -487,16 +487,9 @@ bool convertP1363ToDER(const ncrypto::Buffer& p1363Sig, // Encode the signature in DER format auto buf = asn1_sig.encode(); - if (buf.len < 0) { - return false; - } - - if (!derBuffer.tryAppend(std::span { buf.data, buf.len })) { - OPENSSL_clear_free(buf.data, buf.len); - return false; - } - - OPENSSL_clear_free(buf.data, buf.len); + if (buf.len < 0) return false; + auto bsource = ByteSource::allocated(buf); + if (!derBuffer.tryAppend(bsource.span())) return false; return true; } From 23d61e6cc5fdbad759daa24d125f16393435ab47 Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Fri, 19 Sep 2025 01:40:09 -0700 Subject: [PATCH 59/60] Delete test/js/bun/test/parallel/test-bun-env.js --- test/js/bun/test/parallel/test-bun-env.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test/js/bun/test/parallel/test-bun-env.js diff --git a/test/js/bun/test/parallel/test-bun-env.js b/test/js/bun/test/parallel/test-bun-env.js deleted file mode 100644 index 6ab90a94c91..00000000000 --- a/test/js/bun/test/parallel/test-bun-env.js +++ /dev/null @@ -1 +0,0 @@ -console.log(Bun.env); From 6125c16bf9c81c3d32d0000eb12e6796cf8f82c9 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Fri, 19 Sep 2025 01:57:51 -0700 Subject: [PATCH 60/60] tidy --- test/no-validate-leaksan.txt | 8 -------- 1 file changed, 8 deletions(-) diff --git a/test/no-validate-leaksan.txt b/test/no-validate-leaksan.txt index ace0cca28bd..438c30d4189 100644 --- a/test/no-validate-leaksan.txt +++ b/test/no-validate-leaksan.txt @@ -190,7 +190,6 @@ test/regression/issue/02499/02499.test.ts test/js/node/test/parallel/test-http-server-stale-close.js -# double-free/use-after-free during Zig__GlobalObject__destructOnExit # Bun::JSNodeHTTPServerSocket::clearSocketData test/js/node/test/parallel/test-http-server-keep-alive-max-requests-null.js test/js/node/test/parallel/test-http-keep-alive-pipeline-max-requests.js @@ -210,7 +209,6 @@ test/js/node/test/parallel/test-http-double-content-length.js test/js/node/test/parallel/test-http-blank-header.js test/js/node/test/parallel/test-http-server-keepalive-req-gc.js -# double-free/use-after-free during Zig__GlobalObject__destructOnExit # bun.assert(!this.hasPendingActivity() or jsc.VirtualMachine.get().isShuttingDown()); # @call(bun.callmod_inline, Subprocess.finalize, .{thisValue}); test/js/node/test/parallel/test-set-http-max-http-headers.js @@ -258,7 +256,6 @@ test/js/web/websocket/websocket-custom-headers.test.ts test/js/third_party/body-parser/express-memory-leak.test.ts test/js/bun/http/serve-body-leak.test.ts -# double-free/use-after-free during Zig__GlobalObject__destructOnExit # Zig::SourceProvider::~SourceProvider() test/bundler/bundler_bun.test.ts test/bundler/bundler_cjs2esm.test.ts @@ -353,7 +350,6 @@ vendor/elysia/test/validator/validator.test.ts vendor/elysia/test/ws/destructuring.test.ts vendor/elysia/test/ws/message.test.ts -# double-free/use-after-free during Zig__GlobalObject__destructOnExit # JSC::HandleSet::~HandleSet # bun.js.rare_data.deinit test/js/bun/resolve/resolve.test.ts @@ -365,7 +361,6 @@ test/js/bun/util/inspect.test.js test/js/node/util/node-inspect-tests/parallel/util-inspect.test.js test/js/node/vm/vm.test.ts -# double-free/use-after-free during Zig__GlobalObject__destructOnExit # JSC::BuiltinNames::~BuiltinNames test/js/bun/shell/shell-hang.test.ts test/js/bun/util/reportError.test.ts @@ -375,17 +370,14 @@ test/js/web/websocket/websocket.test.js test/js/web/workers/worker.test.ts test/regression/issue/11664.test.ts -# double-free/use-after-free during Zig__GlobalObject__destructOnExit # ASSERTION FAILED: m_cellState == CellState::DefinitelyWhite test/js/node/tls/node-tls-upgrade.test.ts -# double-free/use-after-free during Zig__GlobalObject__destructOnExit # Bun::NapiExternal::~NapiExternal test/v8/v8.test.ts test/napi/node-napi-tests/test/js-native-api/test_general/do.test.ts test/napi/node-napi-tests/test/js-native-api/6_object_wrap/do.test.ts -# double-free/use-after-free during Zig__GlobalObject__destructOnExit test/bake/dev/production.test.ts test/js/third_party/pg-gateway/pglite.test.ts